<html>
<head>
</head>
<body style="background: transparent;">
    <script src="scripts/docstrap.lib.js"></script>
    <script src="scripts/lunr.min.js"></script>
    <script src="scripts/fulltext-search.js"></script>

    <script type="text/x-docstrap-searchdb">
    {"global.html":{"id":"global.html","title":"Global","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Global Members &lt;constant&gt; createProgram Create the linked program object &lt;constant&gt; loadShader Create a shader object &lt;constant&gt; obj webgl绘图 &lt;constant&gt; RTC_EVENTS 音视频通话相关的事件一览 util Copyright: NeteaseDescription: 该类用于webgl绘制本地视频图像，有一条独立worker，在该worker中建立socket与pc通信，pc中视频信息通过socket传到worker，再从worker传到主线程中进行渲染绘制优化说明： CPU: 每一条worker均会在操作系统增开一条线程，多线程会有利于cpu多核处理效率优化；操作ArrayBuffer尽可能使用TypedArray而不要使用DataView，实测TypedArray的cpu消耗为2%时，DataView为10% 内存：内存要及时消耗，尤其要注意闭包中不要存在大的数据对象，对象的引用删除了，但对象在其他地方还有可能被引用；worker和socket要及时关闭；大数据量建议使用公共内存，以减少新增内存的CPU开销与内存泄露 Methods changeRoleToAudience() 互动者切换到观众 Returns: Type Promise changeRoleToPlayer() 观众切换到互动者 Returns: Type Promise filterClientAntispam(content, antispamLexicon, code, type, content) 检查客户端反垃圾 开发者在getClientAntispamLexicon获取反垃圾词库以后，可以通过此接口识别判断是否是垃圾文本 Parameters: Name Type Description content String 待检查文本 antispamLexicon Object 反垃圾词库，可选 code String 错误码 type Integer 反垃圾类型 content String 过滤后文本 Returns: Type Object Example nim.filterClientAntispam({ content: '啦啦啦' }); × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"classes.list.html":{"id":"classes.list.html","title":"Classes","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Classes Classes Audio Chatroom ChatroomInfo ChatroomMember ChatroomMessage Collect Comment File Friend Geo Image IMMessage LoginPort Netcall NetcallWeixin NIM NIMError NRTC Relation Session Signaling SuperTeam SuperTeamMember SystemMessage Team TeamMember User Video WebRTC WebRTC/NRTC WhiteBoard Namespaces blob support util Events addTrack addTrack 添加轨道事件-高级用法 WebRTC适用 Type: object audioVolume audioVolume 当前所有参与通话者的音量大小实时回调通知 WebRTC适用 Type: object auidoMixingEnd auidoMixingEnd 伴音播放完成 WebRTC适用 Type: object deviceAdd deviceAdd 新增设备的通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 deviceRemove deviceRemove 设备移除的通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 deviceStatus deviceStatus 设备状态变化通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 error error 错误事件 Type: object Properties: Name Type Description code number 错误码 name string 错误名 desc string 错误原因 gatewayClosed gatewayClosed 网关连接断开，等待重连/断开 WebRTC适用 Type: object joinChannel joinChannel 收到自己加入频道的通知 WebRTC适用 Type: void leaveChannel leaveChannel 收到用户离开频道的通知 WebRTC适用 Type: void recordStopped recordStopped 音视频录制完成 WebRTC适用 Type: object Properties: Name Type Description id number name string 音视频录制名称 status string 音视频录制状态 type string 音视频录制类型 uid string 音视频录制的uid remoteTrack remoteTrack 收到用户媒体流-高级用法 WebRTC适用 Type: object removeTrack removeTrack 删除轨道事件-高级用法 WebRTC适用 Type: object streamEnded streamEnded 媒体流停止通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 userJoined userJoined 有用户加入频道的通知 WebRTC适用 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid label string 事件说明 userLeft userLeft 有用户离开频道的通知 WebRTC适用 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid label string 事件说明 code number 用户离开原因 name string 用户离开原因 userStateUpdated userStateUpdated 对方音视频状态更新，如开关音视频设备等 WebRTC适用 Type: object beCalling beCalling 收到呼叫请求 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid callAccepted callAccepted 主叫收到被叫应答通知: 接受 Type: object callerAckSync callerAckSync 其他端已处理的通知 Type: object callRejected callRejected 主叫收到被叫应答通知: 拒绝 Type: object control control 通话进行中收到对端的控制通知 Type: object hangup hangup 收到挂断通知 Type: object sessionDuration sessionDuration 通话计时完成的通知 Type: object × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"namespaces.list.html":{"id":"namespaces.list.html","title":"Namespaces","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Namespaces Classes Audio Chatroom ChatroomInfo ChatroomMember ChatroomMessage Collect Comment File Friend Geo Image IMMessage LoginPort Netcall NetcallWeixin NIM NIMError NRTC Relation Session Signaling SuperTeam SuperTeamMember SystemMessage Team TeamMember User Video WebRTC WebRTC/NRTC WhiteBoard Namespaces blob support util Events addTrack addTrack 添加轨道事件-高级用法 WebRTC适用 Type: object audioVolume audioVolume 当前所有参与通话者的音量大小实时回调通知 WebRTC适用 Type: object auidoMixingEnd auidoMixingEnd 伴音播放完成 WebRTC适用 Type: object deviceAdd deviceAdd 新增设备的通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 deviceRemove deviceRemove 设备移除的通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 deviceStatus deviceStatus 设备状态变化通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 error error 错误事件 Type: object Properties: Name Type Description code number 错误码 name string 错误名 desc string 错误原因 gatewayClosed gatewayClosed 网关连接断开，等待重连/断开 WebRTC适用 Type: object joinChannel joinChannel 收到自己加入频道的通知 WebRTC适用 Type: void leaveChannel leaveChannel 收到用户离开频道的通知 WebRTC适用 Type: void recordStopped recordStopped 音视频录制完成 WebRTC适用 Type: object Properties: Name Type Description id number name string 音视频录制名称 status string 音视频录制状态 type string 音视频录制类型 uid string 音视频录制的uid remoteTrack remoteTrack 收到用户媒体流-高级用法 WebRTC适用 Type: object removeTrack removeTrack 删除轨道事件-高级用法 WebRTC适用 Type: object streamEnded streamEnded 媒体流停止通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 userJoined userJoined 有用户加入频道的通知 WebRTC适用 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid label string 事件说明 userLeft userLeft 有用户离开频道的通知 WebRTC适用 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid label string 事件说明 code number 用户离开原因 name string 用户离开原因 userStateUpdated userStateUpdated 对方音视频状态更新，如开关音视频设备等 WebRTC适用 Type: object beCalling beCalling 收到呼叫请求 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid callAccepted callAccepted 主叫收到被叫应答通知: 接受 Type: object callerAckSync callerAckSync 其他端已处理的通知 Type: object callRejected callRejected 主叫收到被叫应答通知: 拒绝 Type: object control control 通话进行中收到对端的控制通知 Type: object hangup hangup 收到挂断通知 Type: object sessionDuration sessionDuration 通话计时完成的通知 Type: object × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"index.html":{"id":"index.html","title":"Index","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS 快捷入口NIM 包含了 IM 接口 Signaling 将 IM 接口中的信令部分单独抽出来 Chatroom 包含了聊天室接口 Netcall 包含了插件版本的音视频接口 WebRTC 包含了音视频接口(WebRTC) NRTC 包含了音视频接口(NRTC) WebRTC|NRTC 包含了音视频接口 WebRTC/NRTC公共部分 WhiteBoard 包含了白板接口 NetcallWeixin 包含了微信版本的音视频接口 相关链接各个API的使用场景请参考开发手册 API的历史变更请参考Change Log文档 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Audio.html":{"id":"Audio.html","title":"Class: Audio","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Audio Audio new Audio() 音频对象 Properties: Name Type Description url String url name String 名字 size Number 大小, 单位byte md5 String md5 mp3Url String 实时转成 mp3 流的 url, 此 url 支持的格式有: mp3, wav, aac, wma, wmv, amr, mp2, flac, vorbis, ac3 ext String 扩展名 dur Number 长度, 单位ms See: 图片对象 视频对象 文件对象 地理位置对象 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"blob.html":{"id":"blob.html","title":"Namespace: blob","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Namespace: blob blob NIM Blob 工具方法, 通过 NIM.blob 来获取此工具的引用 Methods &lt;static&gt; fromDataURL(dataURL) 将包含 MIME type 和 base64 数据的 data URL 转换为 Blob 对象 Parameters: Name Type Description dataURL String 包含 MIME type 和 base64 数据的 data URL Returns: Blob对象 Type Blob Example var dataURL = ''; var blob = NIM.blob.fromDataURL(dataURL); // blob instanceof Blob === true; × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Chatroom.html":{"id":"Chatroom.html","title":"Class: Chatroom","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Chatroom Chatroom new Chatroom() 请使用 Chatroom.getInstance 来初始化聊天室.此接口为单例模式, 对于同一个账号的同一个聊天室, 永远返回同一份实例, 即只有第一次调用会初始化一个实例, 后续调用此接口会直接返回初始化过的实例. Methods &lt;static&gt; getInstance(options) 此接口为单例模式, 对于同一个账号, 永远返回同一份实例, 即只有第一次调用会初始化一个实例 后续调用此接口会直接返回初始化过的实例, 同时也会调用接口setOptions更新传入的配置 后续调用此接口时, 如果连接已断开, 会自动建立连接 当发生掉线时，SDK会自动进行重连 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description secure Boolean | Object &lt;optional&gt; true secure 模式下会通过 https 协议跟服务器建立连接, 非 secure 模式下会通过 http 协议跟服务器建立连接, 默认 true appKey String 在云信管理后台查看应用的 appKey account String 帐号, 应用内唯一 token String 帐号的 token, 用于建立连接 nosScenes String &lt;optional&gt; 'chatroom' nos文件存储全局配置，存储场景，实例有效，默认chatroom nosSurvivalTime Number &lt;optional&gt; Infinity nos文件存储全局配置，存储有效时间，实例有效，默认Infinity 不得小于一天，单位秒 chatroomId String 聊天室 id chatroomAddresses Array.&lt;String&gt; 聊天室地址列表 onconnect function &lt;optional&gt; 连接建立后的回调, 会传入聊天室信息 onwillreconnect function &lt;optional&gt; 即将重连的回调 此时说明 SDK 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接 此回调会收到一个对象, 包含额外的信息, 有以下字段 duration: 距离下次重连的时间 retryCount: 重连尝试的次数 ondisconnect function &lt;optional&gt; 断开连接后的回调 此时说明 SDK 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面 此回调会收到一个对象, 包含错误的信息, 有以下字段 code: 出错时的错误码, 可能为空 302: 账号或者密码错误 'kicked': 被踢 当code为'kicked'的时候, 此对象会有以下字段 reason: 被踢的原因 chatroomClosed: 聊天室关闭了 managerKick: 被管理员踢出 samePlatformKick: 不允许同一个帐号重复登录同一个聊天室 message: 文字描述的被踢的原因 onerror function &lt;optional&gt; 发生错误的回调, 会传入错误对象 onmsgs function &lt;optional&gt; 收到消息的回调, 会传入消息数组 Example var chatroom = new Chatroom({ appKey: 'appKey', account: 'account', token: 'token', chatroomId: 'chatroomId', chatroomAddresses: [ 'address1', 'address2' ], onconnect: onChatroomConnect, onerror: onChatroomError, onwillreconnect: onChatroomWillReconnect, ondisconnect: onChatroomDisconnect, // 消息 onmsgs: onChatroomMsgs }); function onChatroomConnect(chatroomInfo) { console.log('进入聊天室', chatroomInfo); } function onChatroomWillReconnect(obj) { // 此时说明 `SDK` 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接 console.log('即将重连', obj); } function onChatroomDisconnect(error) { // 此时说明 `SDK` 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面 console.log('连接断开', error); if (error) { switch (error.code) { // 账号或者密码错误, 请跳转到登录页面并提示错误 case 302: break; // 被踢, 请提示错误后跳转到登录页面 case 'kicked': break; default: break; } } } function onChatroomError(error, obj) { console.log('发生错误', error, obj); } function onChatroomMsgs(msgs) { console.log('收到聊天室消息', msgs); } audioToMp3(options) 将音频 url 转为 mp3 此方法会返回一个新的 url Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String url Returns: 转为 mp3 后的 url Type String Example var url = 'http://b12026.nos.netease.com/MTAxMTAxMA==/bmltYV8xMTQwMzFfMTQ1MTg4ODk5MjMxMV9mNmI1Y2QyZC03N2UzLTQxNmUtYWY5NC1iODlhZGY4ZTYzYWQ='; var mp3Url = chatroom.audioToMp3({ url: url }); console.log(mp3Url); connect() 进入聊天室 See: disconnect Returns: Type Void Example chatroom.connect(); disconnect() 退出聊天室 See: connect Returns: Type Void Example chatroom.disconnect(); drop(options) 清除聊天室队列 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done function 结果回调函数 Returns: Type Void Example chatroom.drop({ done: dropDone }) function dropDone (error, obj, content) { console.log('清除聊天室队列' + (!error?'成功':'失败'), error, obj, content); } getChatroom(options) 获取聊天室信息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done function 结果回调函数, 成功时会额外附上聊天室信息 Returns: Type Void Example chatroom.getChatroom({ done: getChatroomDone }); function getChatroomDone(error, obj) { console.log('获取聊天室信息' + (!error?'成功':'失败'), error, obj); } getChatroomMembers(options) 获取聊天室成员列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description guest Boolean true表示获取游客, false表示获取非游客成员 游客列表按照游客进入聊天室的时间倒序排列 非游客（即固定成员）列表按照成为固定成员的时间倒序排列 onlyOnline Boolean &lt;optional&gt; false 当设置guest=false来获取非游客成员时, 默认会获取所有的固定成员, 包括不在线的, 可以设置onlyOnline=true来只获取在线的固定成员 time Number &lt;optional&gt; 0 分页用, 查找该时间戳之前的成员 默认 0 代表当前服务器时间 获取游客时, 此字段填上次获取的最后一个游客的enterTime 获取非游客时, 此字段填上次获取的最后一个非游客的updateTime limit Number &lt;optional&gt; 100 分页用, 默认 100 done done 结果回调函数, 成功时会额外附上聊天室成员信息列表 Returns: Type Void Example chatroom.getChatroomMembers({ guest: false, limit: 100, done: getChatroomMembersDone }); function getChatroomMembersDone(error, obj) { console.log('获取聊天室成员' + (!error?'成功':'失败'), error, obj.members); } getChatroomMembersInfo(options) 获取聊天室成员信息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description accounts Array.&lt;String&gt; 待查询的账号列表, 每次最多20个 done function 结果回调函数, 成功时会额外附上聊天室成员信息列表 Returns: Type Void Example chatroom.getChatroomMembersInfo({ accounts: ['account1', 'account2'], done: getChatroomMembersInfoDone }); function getChatroomMembersInfoDone(erorr, obj) { console.log('获取聊天室成员信息' + (!error?'成功':'失败'), error, obj); } getHistoryMsgs(options) 获取聊天室历史消息 获取从 timetag 对应的时间点往前的若干条数据 不填 timetag 的话默认为服务器当前时间 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description timetag Number &lt;optional&gt; 时间戳 limit Number &lt;optional&gt; 100 limit, 默认 100 reverse Boolean &lt;optional&gt; false 默认false表示从timetag开始往前查找历史消息; msgTypes StringArray &lt;optional&gt; ['text', 'image', ...] 消息类型列表，默认全部消息类型 Returns: Type Void Example chatroom.getHistoryMsgs({ timetag: 1451393192478, limit: 100, done: getHistoryMsgsDone }); function getHistoryMsgsDone(error, obj) { console.log('获取聊天室历史' + (!error?'成功':'失败'), error, obj.msgs); } kickChatroomMember(options) 踢聊天室成员 当有人被踢出聊天室时, 所有聊天室成员会收到类型为'kickMember'的聊天室通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 待踢的账号 custom String &lt;optional&gt; 扩展字段, 如果填了, 那么其它聊天室成员收到的聊天室通知消息的attach.custom的值为此字段, 被踢的人收到的ondisconnect回调接收的参数的custom的值为此字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done function 结果回调函数 Returns: Type Void Example chatroom.kickChatroomMember({ account: 'account', done: kickChatroomMemberDone }); function kickChatroomMember(error, obj) { console.log('踢人' + (!error?'成功':'失败'), error, obj); } markChatroomBlacklist(options) 设置聊天室黑名单 被加入黑名单的人将不能进入此聊天室 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 待设置的账号 isAdd Boolean true表示添加, false表示移除 当有人被加入黑名单时, 所有聊天室成员会收到类型为'blackMember'的聊天室通知消息。 当有人被移除黑名单时, 所有聊天室成员会收到类型为'blackMember'的聊天室通知消息。 custom String &lt;optional&gt; 扩展字段, 如果填了, 那么其它聊天室成员收到的聊天室通知消息的attach.custom的值为此字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done function 结果回调函数, 成功时会额外附上聊天室成员信息 Returns: Type Void Example chatroom.markChatroomBlacklist({ account: 'account', isAdd: true, done: markChatroomBlacklistDone }); function markChatroomBlacklistDone(error, obj) { console.log('添加聊天室黑名单' + (!error?'成功':'失败'), error, obj.member); } markChatroomCommonMember(options) 设置聊天室普通成员 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description account String 待设置的账号 isAdd Boolean 是否加为普通成员 当有人被加为普通成员时, 所有聊天室成员会收到类型为'addCommon'的聊天室通知消息。 当有人被移除普通成员时, 所有聊天室成员会收到类型为'removeCommon'的聊天室通知消息。 level Number &lt;optional&gt; 0 等级 custom String &lt;optional&gt; 扩展字段, 如果填了, 那么其它聊天室成员收到的聊天室通知消息的attach.custom的值为此字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done function 结果回调函数 Returns: Type Void Example chatroom.markChatroomCommonMember({ account: 'account', level: 0, done: markChatroomCommonMemberDone }); function markChatroomCommonMemberDone(error) { console.log('设置聊天室普通成员' + (!error?'成功':'失败'), error); } markChatroomGaglist(options) 设置聊天室禁言名单 被加入禁言名单的人将不能在该聊天室发送消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 待设置的账号 isAdd Boolean true表示添加, false表示移除 当有人被加入禁言名单时, 所有聊天室成员会收到类型为'gagMember'的聊天室通知消息。 当有人被移除禁言名单时, 所有聊天室成员会收到类型为'ungagMember'的聊天室通知消息。 custom String &lt;optional&gt; 扩展字段, 如果填了, 那么其它聊天室成员收到的聊天室通知消息的attach.custom的值为此字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done function 结果回调函数, 成功时会额外附上聊天室成员信息 Returns: Type Void Example chatroom.markChatroomGaglist({ account: 'account', isAdd: true, done: markChatroomGaglistDone }); function markChatroomGaglistDone(error, obj) { console.log('添加聊天室禁言名单' + (!error?'成功':'失败'), error, obj.member); } markChatroomIdentity(options) 设置聊天室成员身份 管理员可以设置聊天室普通成员, 设置聊天室黑名单, 设置聊天室禁言名单, 踢聊天室成员 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 待设置的账号 identity String 待设置的身份，如果不是以下身份则默认设置为普通成员 'manager' (管理员) 'common' (普通成员) 'black' (拉黑) 'mute' (禁言) isAdd Boolean true表示添加, false表示移除 当有人被加为管理员时, 所有聊天室成员会收到类型为'addManager'的聊天室通知消息。 当有人被移除管理员时, 所有聊天室成员会收到类型为'removeManager'的聊天室通知消息。 custom String &lt;optional&gt; 扩展字段, 如果填了, 那么其它聊天室成员收到的聊天室通知消息的attach.custom的值为此字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done function 结果回调函数, 成功时会额外附上聊天室成员信息 Returns: Type Void Example chatroom.markChatroomIdentity({ account: 'account', identity: 'common', isAdd: true, done: markChatroomIdentityDone }); function markChatroomIdentityDone(error, obj) { console.log('设置聊天室成员身份' + (!error?'成功':'失败'), error, obj.member); } markChatroomManager(options) 设置聊天室管理员 管理员可以设置聊天室普通成员, 设置聊天室黑名单, 设置聊天室禁言名单, 踢聊天室成员 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 待设置的账号 isAdd Boolean true表示添加, false表示移除 当有人被加为管理员时, 所有聊天室成员会收到类型为'addManager'的聊天室通知消息。 当有人被移除管理员时, 所有聊天室成员会收到类型为'removeManager'的聊天室通知消息。 custom String &lt;optional&gt; 扩展字段, 如果填了, 那么其它聊天室成员收到的聊天室通知消息的attach.custom的值为此字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done function 结果回调函数, 成功时会额外附上聊天室成员信息 Returns: Type Void Example chatroom.markChatroomManager({ account: 'account', isAdd: true, done: markChatroomManagerDone }); function markChatroomManagerDone(error, obj) { console.log('添加聊天室管理员' + (!error?'成功':'失败'), error, obj.member); } packFileDownloadName(options) 修改图片下载的名字 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url name String 下载的名字 Returns: 修改图片下载名字后的图片 url Type String Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var nameUrl = chatroom.packFileDownloadName({ url: url, name: '测试.jpg' }); console.log(nameUrl); peak(options) 获取聊天室队列中第一个元素 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done function 结果回调函数 Returns: Type Void Example chatroom.peak({ done: peakDone }) function peakDone (error, obj, content) { console.log('获取聊天室队列中第一个元素' + (!error?'成功':'失败'), error, obj, content); } previewFile(options) 预览文件 开发者可以预览文件, 支持以下几种场景 通过参数fileInput传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 通过参数blob传入 Blob 对象 通过参数dataURL传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器支持 Blob SDK会将文件上传到文件服务器, 然后将拿到的文件对象在done回调中传给开发者, 文件对象有以下几种 图片对象 音频对象 视频对象 文件对象 开发者在拿到文件对象之后, 可以调用发送文件消息来发送文件消息。 文件大小限制为最大 100M 高级浏览器会在上传前就检测文件大小 IE8/IE9 会在上传完成后检测文件大小 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type String &lt;optional&gt; 文件过滤器 image会过滤掉非图片的文件, audio过滤掉非音频, video会过滤掉非视频的文件 IE8/IE9 不支持文件过滤 fileInput String | Node &lt;optional&gt; 文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 blob Blob &lt;optional&gt; Blob 对象 dataURL String &lt;optional&gt; 包含 MIME type 和 base64 数据的 data URL uploadprogress uploadprogress &lt;optional&gt; 上传进度, ie9以下不支持上传进度 nosScenes String &lt;optional&gt; 存储场景，不传默认全局实例配置 nosSurvivalTime Number &lt;optional&gt; 存储有效时间，传默认全局实例配置 不得小于一天，单位秒 done done 结果回调函数, 成功时会收到文件对象, 请参考 图片对象 音频对象 视频对象 文件对象 Returns: Type Void Example chatroom.previewFile({ type: 'image', fileInput: fileInput, uploadprogress: function(obj) { console.log('文件总大小: ' + obj.total + 'bytes'); console.log('已经上传的大小: ' + obj.loaded + 'bytes'); console.log('上传进度: ' + obj.percentage); console.log('上传进度文本: ' + obj.percentageText); }, done: function(error, file) { console.log('上传image' + (!error?'成功':'失败')); // show file to the user if (!error) { var msg = chatroom.sendFile({ scene: 'p2p', to: 'account', file: file, done: sendChatroomMsgDone }); console.log('正在发送聊天室image消息, id=' + msg.idClient); } } }); queueChange(options) 批量更新聊天室队列 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description elementMap String 批量更新元素的key-value对，key/value分别是elementKey和elementValue（elementKey限制128字节,elementValue限制4096字节），一次最多更新100个 needNotify Boolean 是否需要发送广播通知，可选参数，不传默认false，当设置为 true 时，所有聊天室成员会收到类型为'updateQueue'的聊天室通知消息。 notifyExt String 通知中的自定义字段，长度限制2048 done function 结果回调函数 Returns: Type Void Example chatroom.queueChange({ elementMap: { elementKey1: newElementValue }, transient: true, notifyExt: 'queueChange', done: queueChangeDone }) function queueChangeDone (error, obj, content) { console.log('批量更新聊天室队列' + (!error?'成功':'失败'), error, obj, content); } queueList(options) 获取聊天室队列列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done function 结果回调函数 Returns: Type Void Example chatroom.queueList({ done: queueListDone }) function queueListDone (error, obj, content) { console.log('获取聊天室队列列表' + (!error?'成功':'失败'), error, obj, content); } queueOffer(options) 新加(更新)队列元素 当新加(更新)队列元素时, 所有聊天室成员会收到类型为'updateQueue'的聊天室通知消息。如果elementKey对应的元素已经在队列中存在了，那就是更新操作，如果不存在，就放到队列尾部. Parameters: Name Type Description options Object 配置参数 Properties Name Type Description elementKey String 新元素的UniqKey，长度限制128字节 elementValue String 新元素内容，长度限制4096字节 transient Boolean 可选参数，不传默认false，当提交这个新元素的用户从聊天室掉线或退出的时候，是否需要删除这个元素。 done function 结果回调函数 Returns: Type Void Example chatroom.queueOffer({ elementKey: ‘elementKey1’, elementValue: ‘elementValue1’, transient: true, done: queueOfferDone }) function queueOfferDone (error, obj, content) { console.log('新加(更新)队列元素' + (!error?'成功':'失败'), error, obj, content); } queuePoll(options) 删除队列元素 当删除队列元素时, 所有聊天室成员会收到类型为'updateQueue'的聊天室通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description elementKey String 需要取出的元素的UniqKey, 传空传表示取出第一个元素 done function 结果回调函数 Returns: Type Void Example chatroom.queuePoll({ elementKey: ‘elementKey1’, done: queuePollDone }) function queuePollDone (error, obj, content) { console.log('删除队列元素' + (!error?'成功':'失败'), error, obj, content); } sendCustomMsg(options) 发送自定义消息 自定义消息是消息类型的一种 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description content String 自定义消息的消息内容, 推荐使用JSON格式构建 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 fromNick String &lt;optional&gt; 发送方的昵称 done done 结果回调函数 Returns: 消息 Type Message Example var value = Math.ceil(Math.random()*3); var content = { type: 1, data: { value: value } }; var msg = chatroom.sendCustomMsg({ content: JSON.stringify(content), done: sendChatroomMsgDone }); console.log('正在发送聊天室自定义消息, id=' + msg.idClient); sendFile(options) 发送文件消息 文件消息是消息类型的一种 开发者可以直接发送文件消息 支持以下几种场景 通过参数fileInput传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 通过参数blob传入 Blob 对象 通过参数dataURL传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器支持 Blob SDK会先将文件上传到文件服务器, 然后把拿到的文件对象在uploaddone回调中传给用户, 然后将其拼装成文件消息发送出去。 开发者也可以先预览文件来获取文件对象, 然后调用此接口发送文件消息。 通过参数file传入文件 直接发送文件消息的话会在beforesend回调里面传入SDK生成的idClient, 如果先预览文件再发送, 那么此接口会直接返回idClient 参数type指定了要发送的文件类型, 包括图片、音频、视频和普通文件, 对应的值分别为'image'、'audio'、'video'和'file', 不传默认为'file'。 图片、音频、视频和普通文件的区别在于具体的文件信息不一样, 具体字段请参考 图片对象 音频对象 视频对象 文件对象 文件大小限制为最大100M 高级浏览器会在上传前就检测文件大小 IE8和IE9会在上传完成后检测文件大小 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description type String &lt;optional&gt; 文件过滤器, 'image'会过滤掉非图片的文件, 'audio'过滤掉非音频, 'video'会过滤掉非视频的文件, IE8/IE9 不支持文件过滤 fileInput String | Node &lt;optional&gt; 文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 blob Blob &lt;optional&gt; Blob 对象 dataURL String &lt;optional&gt; MIME type 和 base64 数据的 data URL file Array &lt;optional&gt; 文件对象, 开发者可以通过预览文件拿到文件对象 wxFilePath String &lt;optional&gt; 仅供微信小程序使用, 通过 wx.chooseImage 或者 wx.startRecord 拿到的临时文件路径 resend Boolean &lt;optional&gt; false 是否是重发 beginupload function &lt;optional&gt; 开始上传图片的回调 如果开发者传入 fileInput, 在此回调之前不能修改 fileInput 在此回调之后可以取消图片上传, 此回调会接收一个参数 upload, 调用 upload.abort(); 来取消文件上传 uploadprogress uploadprogress &lt;optional&gt; 上传进度, IE9以下不支持上传进度 uploaddone uploaddone &lt;optional&gt; 上传完成回调 beforesend beforesend &lt;optional&gt; 发送文件消息之前的回调函数 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 fromNick String &lt;optional&gt; 发送方的昵称 nosScenes String &lt;optional&gt; 存储场景，不传默认全局实例配置 nosSurvivalTime Number &lt;optional&gt; 存储有效时间，传默认全局实例配置 不得小于一天，单位秒 done done 结果回调函数 Returns: 如果提供了参数fileInput, 那么先上传文件到服务器再发送, 不会返回消息, 会在beforesend里面返回消息. 如果提供了参数file, 那么直接发送文件消息, 返回消息 Type Void | Message Example chatroom.sendFile({ type: 'image', fileInput: fileInput, uploadprogress: function(obj) { console.log('文件总大小: ' + obj.total + 'bytes'); console.log('已经上传的大小: ' + obj.loaded + 'bytes'); console.log('上传进度: ' + obj.percentage); console.log('上传进度文本: ' + obj.percentageText); }, uploaddone: function(error, file) { console.log('上传' + (!error?'成功':'失败'), error, file); }, beforesend: function(msg) { console.log('正在发送聊天室image消息, id=' + msg.idClient); }, done: sendChatroomMsgDone }); sendGeo(options) 发送地理位置消息 地理位置消息是消息类型的一种, geo参数请参考地理位置对象 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description geo Object 地理位置对象 Properties Name Type Description lng Number 经度 lat Number 纬度 title String 地址描述 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 Returns: 消息 Type Message Example var msg = chatroom.sendGeo({ scene: 'p2p', to: 'account', geo: { lng: '116.3833', lat: '39.9167', title: 'Beijing' }, done: sendChatroomMsgDone }); console.log('正在发送聊天室geo消息, id=' + msg.idClient); sendText(options) 发送文本消息 文本消息是消息的一种, 请参考消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description text String 文本消息内容 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 clientAntiSpam Boolean &lt;optional&gt; false 是否需要过客户端反垃圾 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 done done 结果回调函数 Returns: 消息 Type Message Example var msg = chatroom.sendText({ text: 'hello', done: sendChatroomMsgDone }); console.log('正在发送聊天室text消息, id=' + msg.idClient); function sendChatroomMsgDone(error, msg) { console.log('发送聊天室' + msg.type + '消息' + (!error?'成功':'失败') + ', id=' + msg.idClient, error, msg); } sendTipMsg(options) 发送提醒消息 提醒消息是消息类型的一种 提醒消息用于会话内的状态提醒，如进入会话时出现的欢迎消息，或者会话命中敏感词后的提示消息等等. Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description tip String 提醒内容 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 Returns: 消息 Type Message Example var msg = chatroom.sendTipMsg({ scene: 'p2p', to: 'account', tip: 'tip content', done: sendChatroomMsgDone }); console.log('正在发送聊天室提醒消息, id=' + msg.idClient); setOptions(options) 更新聊天室配置, 参数格式跟 Chatroom.getInstance 保持一致 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description token String 帐号的 token, 用于建立连接 Example // 更新 token 的例子 chatroom.setOptions({ token: 'newToken' }); updateChatroom(options) 更新聊天室信息 当更新聊天室时, 所有聊天室成员会收到类型为'updateChatroom'的聊天室通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description chatroom Object 待更新的聊天室信息 Properties Name Type Argument Description name String &lt;optional&gt; 聊天室名字 announcement String &lt;optional&gt; 聊天室公告 broadcastUrl String &lt;optional&gt; 直播地址 custom String &lt;optional&gt; 扩展字段 queuelevel Integer &lt;optional&gt; 队列管理权限：0:所有人都有权限变更队列，1:只有主播管理员才能操作变更 needNotify Boolean 是否需要下发对应的通知消息 custom String &lt;optional&gt; 对应的通知消息的扩展字段 done function 结果回调函数 Returns: Type Void Example chatroom.updateChatroom({ chatroom: { name: 'newName', announcement: 'newAnnouncement', broadcastUrl: 'newBroadcastUrl', custom: 'newCustom', queuelevel: 'newQueuelevel', }, needNotify: true, custom: 'biu', done: updateChatroomDone }) function updateChatroomDone () { console.log('更新聊天室信息' + (!error?'成功':'失败'), error, obj); } updateChatroomMemberTempMute(options) 设置聊天室临时禁言 当有人被设置聊天室临时禁言时，所有聊天室成员会收到类型为'addTempMute' or 'removeTempMute'的聊天室通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 帐号 duration Number 禁言时长，单位秒，传0表示解除禁言 needNotify Boolean 是否需要下发对应的通知消息 custom String 对应的通知消息的扩展字段 Returns: Type Void Example chatroom.updateChatroomMemberTempMute({ account: 'account', duration: 60, needNotify: true, custom: 'biu', done: updateChatroomMemberTempMuteDone }) function updateChatroomMemberTempMuteDone(error, obj) { console.log('设置聊天室临时禁言' + (!error?'成功':'失败'), error, obj); } updateMyChatroomMemberInfo(options) 更新自己在聊天室内的信息 当更新自己在聊天室内的信息时, 所有聊天室成员会收到类型为'updateMemberInfo'的聊天室通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description member Object 待更新的成员信息 Properties Name Type Argument Description nick String &lt;optional&gt; 聊天室内的昵称 avatar String &lt;optional&gt; 聊天室内的头像 custom String &lt;optional&gt; 第三方扩展字段 needNotify Boolean 是否需要下发对应的通知消息 custom String &lt;optional&gt; 对应的通知消息的扩展字段 needSave String &lt;optional&gt; 可选，默认false，是否支持nick,avator和custom字段的持久化（固定成员有效） done function 结果回调函数 Returns: Type Void Example chatroom.updateMyChatroomMemberInfo({ member: { nick: 'newNick', avatar: 'newAvatar', custom: 'newCustom', }, needNotify: true, needSave: true, custom: 'biu', done: updateMyChatroomMemberInfoDone }) function updateMyChatroomMemberInfoDone (error, obj) { console.log('更新自己在聊天室内的信息' + (!error?'成功':'失败'), error, obj); } × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"ChatroomInfo.html":{"id":"ChatroomInfo.html","title":"Class: ChatroomInfo","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: ChatroomInfo ChatroomInfo new ChatroomInfo() Properties: Name Type Description id String 聊天室 id name String 聊天室名字 announcement String 聊天室公告 broadcastUrl String 直播地址 custom String 第三方扩展字段 createTime Number 创建时间 updateTime Number 更新时间 creator String 创建者账号 onlineMemberNum Number 当前在线人数 mute Boolean 是否禁言, 禁言状态下普通成员不能发送消息, 创建者和管理员可以发送消息 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"ChatroomMember.html":{"id":"ChatroomMember.html","title":"Class: ChatroomMember","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: ChatroomMember ChatroomMember new ChatroomMember() 聊天室成员 Properties: Name Type Description chatroomId String 聊天室 ID account String 账号 nick String 聊天室内的昵称 avatar String 聊天室内的头像 type String 聊天室成员类型 guest String 是否是游客 blacked String 是否被拉黑 gaged String 是否被禁言 level Number 级别 online Boolean 是否在线, 只有固定成员才能离线, 对游客而言只能是在线 enterTime Number 进入聊天室的时间, 如果离线, 无该字段 custom String 第三方扩展字段 updateTime Number 更新时间 tempMuted Boolean 是否被临时禁言 tempMuteDuration Number 临时禁言剩余时长 Members &lt;static, readonly&gt; type :String 聊天室成员类型 聊天室成员分为固定成员和游客两种。固定成员又分为房主、管理员、普通成员和受限成员四种。禁言用户和拉黑用户都属于受限用户。 'owner' (房主) 'manager' (管理员) 'restricted' (受限制, 被拉黑或者禁言) 'unset' (未设置) 'common' (普通成员) 'guest' (游客) 'anonymous' (匿名非注册用户，非云信注册用户) Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"ChatroomMessage.html":{"id":"ChatroomMessage.html","title":"Class: ChatroomMessage","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: ChatroomMessage ChatroomMessage new ChatroomMessage() 聊天室消息 Properties: Name Type Argument Description chatroomId String 聊天室 ID idClient String SDK生成的消息id, 在发送消息之后会返回给开发者, 开发者可以在发送消息的结果回调里面根据这个ID来判断相应消息的发送状态, 到底是发送成功了还是发送失败了, 然后根据此状态来更新页面的UI。如果发送失败, 那么可以重新发送此消息 from String 消息发送方, 帐号 fromNick String 消息发送方的昵称 fromAvatar String 消息发送方的头像 fromCustom String 消息发送方的扩展字段 fromClientType String 发送方的设备类型 type String 消息类型 flow String 消息的流向 'in'表示此消息是收到的消息 'out'表示此消息是发出的消息 skipHistory Boolean &lt;optional&gt; 是否跳过存云端历史, false:不跳过,true:跳过存历史,默认false text String &lt;optional&gt; 文本消息的文本内容, 请参考发送聊天室文本消息 file Object &lt;optional&gt; 文件消息的文件对象, 具体字段请参考图片对象、音频对象、视频对象和文件对象, 请参考发送聊天室文件消息 geo Object &lt;optional&gt; 地理位置消息的地理位置对象, 请参考发送聊天室地理位置消息 tip String &lt;optional&gt; 提醒消息的内容, 请参考发送聊天室提醒消息 content String &lt;optional&gt; 自定义消息的消息内容, 开发者可以自行扩展, 建议封装成JSON格式字符串, 请参考发送聊天室自定义消息 attach Object &lt;optional&gt; 聊天室通知消息的附加信息, 参考聊天室通知消息的类型来查看详细解释 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 resend Boolean 是否是重发的消息 time Number 时间戳 Members &lt;static, readonly&gt; type :String 聊天室消息类型 'text' (文本) 'image' (图片) 'audio' (音频) 'video' (视频) 'file' (文件) 'geo' (地理位置) 'custom' (自定义消息) 'robot' (机器人消息) 'tip' (提醒消息) 提醒消息用于会话内的状态提醒，如进入会话时出现的欢迎消息，或者会话命中敏感词后的提示消息等等. 'notification' (聊天室通知消息) 某些聊天室操作后所有聊天室成员会收到一条相应的聊天室通知消息, 详细介绍请参考聊天室通知消息的类型 Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Collect.html":{"id":"Collect.html","title":"Class: Collect","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Collect Collect new Collect() 收藏 Properties: Name Type Description id String 收藏的ID，由云信自动生成 type Number 类型，开发者可自定义映射关系，只能是整数 data String 收藏的具体数据内容，最大20480 custom String 扩展字段，最大1024 uniqueId String 唯一ID，可用于去重，由开发者自定义 createTime Number 创建时间 updateTime Number 更新时间 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Comment.html":{"id":"Comment.html","title":"Class: Comment","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Comment Comment new Comment() 快捷评论 Properties: Name Type Description from String 评论的发送方 body Number 评论的内容，只能是整数，开发者可自定义映射规则，如1点赞的表情、2对应鼓掌的表情等等 time Number 评论的时间 custom String 扩展字段 needPush Boolean 是否需要推送 needBadge Boolean 是否需要推送角标 pushTitle String 推送的标题 apnsText String 自定义推送文案 pushPayload String 第三方自定义的推送属性，限制json字符串，长度最大2048 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"File.html":{"id":"File.html","title":"Class: File","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: File File new File() 文件对象 Properties: Name Type Description url String url name String 名字 size Number 大小, 单位byte md5 String md5 ext String 扩展名 See: 图片对象 音频对象 视频对象 地理位置对象 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Friend.html":{"id":"Friend.html","title":"Class: Friend","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Friend Friend new Friend() Properties: Name Type Description account String 账号 alias String 昵称 custom String 扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 createTime Number 成为好友的时间 updateTime Number 更新时间 Members &lt;static, readonly&gt; requestType :String 好友请求类型 'addFriend' (直接加为好友) 'applyFriend' (申请加为好友) 'passFriendApply' (通过好友申请) 'rejectFriendApply' (拒绝好友申请) Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Geo.html":{"id":"Geo.html","title":"Class: Geo","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Geo Geo new Geo() 地理位置对象 Properties: Name Type Description lng Number 经度 lat Number 纬度 title String 地址描述 See: 图片对象 音频对象 视频对象 文件对象 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Image.html":{"id":"Image.html","title":"Class: Image","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Image Image new Image() 图片对象 Properties: Name Type Description url String url name String 名字 size Number 大小, 单位byte md5 String md5 ext String 扩展名 w String 宽, 单位px h String 高, 单位px See: 音频对象 视频对象 文件对象 地理位置对象 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"IMMessage.html":{"id":"IMMessage.html","title":"Class: IMMessage","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: IMMessage IMMessage new IMMessage() IM 消息 Properties: Name Type Argument Description scene String 场景 from String 消息发送方, 帐号 fromNick String 消息发送方的昵称 fromClientType String 发送方的设备类型 fromDeviceId String 发送端设备id to String 消息接收方, 帐号或群id time Number 时间戳 userUpdateTime Number 发送方信息更新时间 type String 消息类型 sessionId String 消息所属的会话的ID target String 聊天对象, 账号或者群id flow String 消息的流向 'in'表示此消息是收到的消息 'out'表示此消息是发出的消息 status String 消息发送状态 'sending' 发送中 'success' 发送成功 'fail' 发送失败 text String &lt;optional&gt; 文本消息的文本内容, 请参考发送文本消息 file Object &lt;optional&gt; 文件消息的文件对象, 具体字段请参考图片对象、音频对象、视频对象和文件对象, 请参考发送文件消息 geo Object &lt;optional&gt; 地理位置消息的地理位置对象, 请参考发送地理位置消息 tip String &lt;optional&gt; 提醒消息的内容, 请参考发送提醒消息 content String &lt;optional&gt; 自定义消息的消息内容, 开发者可以自行扩展, 建议封装成JSON格式字符串, 请参考发送自定义消息 attach Object &lt;optional&gt; 群通知消息的附加信息, 参考群通知消息的类型来查看不同类型的群通知消息对应的附加信息 idClient String SDK生成的消息id, 在发送消息之后会返回给开发者, 开发者可以在发送消息的结果回调里面根据这个ID来判断相应消息的发送状态, 到底是发送成功了还是发送失败了, 然后根据此状态来更新页面的UI。如果发送失败, 那么可以重新发送此消息 idServer String &lt;optional&gt; 服务器用于区分消息用的ID, 用于获取历史消息和获取包含关键词的历史消息, 此字段可能没有, 所以开发者应该使用idClient来唯一标识消息 isMuted Boolean 该消息在接收方是否应该被静音 resend Boolean 是否是重发的消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 pushContent String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 自定义的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 此字段不存在的话表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案 forcePush String &lt;optional&gt; 是否强制推送, true 表示即使推送列表中的用户屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 localCustom String &lt;optional&gt; 本地自定义扩展字段 在支持数据库时可以调用更新本地消息来更新此字段, 此字段只会被更新到本地数据库, 不会被更新到服务器上 isHistoryable Boolean 是否存储云端历史 isRoamingable Boolean 是否支持漫游 isSyncable Boolean 是否支持发送者多端同步 cc Boolean 是否支持抄送 isPushable Boolean 是否需要推送 isOfflinable Boolean 是否要存离线 isUnreadable Boolean 是否计入消息未读数 isReplyMsg Boolean 是否为应答消息（用于机器人等类似场景等应答消息内容） tempTeamMemberCount Integer 群已读消息快照大小（即消息发送时的群人数-1） needPushNick Boolean 是否需要推送昵称 isLocal Boolean 是否是本地消息, 请查阅发送文本消息 replyMsgFromAccount String 被回复消息的发送者账号 replyMsgToAccount String 被回复消息的接受者账号 replyMsgTime Number 被回复消息的时间 replyMsgIdServer String 被回复消息的idServer replyMsgIdClient String 被回复消息的idClient threadMsgFromAccount String thread消息的发送者账号 threadMsgToAccount String thread消息的接受者账号 threadMsgTime Number thread消息的时间 threadMsgIdServer String thread消息的idServer threadMsgIdClient String thread消息的idClient delete Boolean 表该消息是否已被撤回或单向删除，获取thread消息列表时会用到 Members &lt;static, readonly&gt; attach :String 群通知消息 群通知消息是消息的一种, 请参考消息类型, 某些群操作后所有群成员会收到一条相应的群通知消息 群通知消息有一个字段attach包含了额外的信息, attach有一个字段type来标识群通知消息的类型 'updateTeam' (更新群) 更新群后, 所有群成员会收到一条类型为'updateTeam'的群通知消息。此类群通知消息的from字段的值为更新群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为被更新的群信息。 'addTeamMembers' (拉人入群) 普通群, 拉人入群后, 所有群成员会收到一条类型为'addTeamMembers'的群通知消息。此类群通知消息的from字段的值为拉人的人的帐号,to字段的值为对应的群ID,attach有一个字段team的值为对应的[群对象](#群对象),attach有一个字段accounts的值为被拉的人的帐号列表,attach有一个字段members`的值为被拉的群成员列表。 被邀请的群成员在有人说话后才能看到该群, 而且会先收到一条类型为'addTeamMembers'的群通知消息, 然后会收到其它群消息。 'removeTeamMembers' (踢人出群) 踢人出群后, 所有群成员会收到一条类型为'removeTeamMembers'的群通知消息。此类群通知消息的from字段的值为踢人的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段accounts的值为被踢的人的帐号列表。 'acceptTeamInvite' (接受入群邀请) 高级群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 'passTeamApply' (通过入群申请) 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applyTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 'addTeamManagers' (添加群管理员) 添加群管理员后, 所有群成员会收到一条类型为'addTeamManagers'的群通知消息。此类群通知消息的from字段的值为添加群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被加为管理员的帐号列表, attach有一个字段members的值为被加为管理员的群成员列表。 'removeTeamManagers' (移除群管理员)。 移除群管理员后, 所有群成员会收到一条类型为'removeTeamManagers'的群通知消息。此类群通知消息的from字段的值为移除群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被移除的管理员的帐号列表, attach有一个字段members的值为被移除管理员的群成员列表。 'leaveTeam' (主动退群) 主动退群后, 所有群成员会收到一条类型为'leaveTeam'的群通知消息。此类群通知消息的from字段的值为退群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象。 'dismissTeam' (解散群) 解散群后, 所有群成员会收到一条类型为'dismissTeam'的群通知消息。此类群通知消息的from字段为解散群的人的帐号, to字段的值为被对应的群ID。 'transferTeam' (转让群) 转让群后, 所有群成员会收到一条类型为'transferTeam'的群通知消息。此类群通知消息的from字段的值为转让群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为为新群主的帐号, attach有一个字段members的值为包含新旧群主的群成员列表。 'updateTeamMute' (更新群成员禁言状态) 更新群成员禁言状态后, 所有群成员会收到一条类型为'updateTeamMute'的群通知消息。此类群通知消息的from字段的值为操作方, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为被禁言的帐号, attach有一个字段members的值为被禁言的群成员列表。 以下是超大群的群通知消息 'updateSuperTeam' (更新超大群) 更新超大群后, 所有超大群群成员会收到一条类型为'updateSuperTeam'的群通知消息。此类群通知消息的from字段的值为更新群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为被更新的超大群信息。 'addSuperTeamMembers' (拉人入超大群) 普通群, 拉人入超大群后, 所有超大群群成员会收到一条类型为'addSuperTeamMembers'的群通知消息。此类群通知消息的from字段的值为拉人的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段accounts的值为被拉的人的帐号列表, attach有一个字段members的值为被拉的群成员列表。 被邀请的群成员在有人说话后才能看到该超大群, 而且会先收到一条类型为'addSuperTeamMembers'的群通知消息, 然后会收到其它群消息。 'removeSuperTeamMembers' (踢人出超大群) 踢人出超大群后, 所有超大群群成员会收到一条类型为'removeSuperTeamMembers'的群通知消息。此类群通知消息的from字段的值为踢人的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段accounts的值为被踢的人的帐号列表。 'leaveSuperTeam' (主动退出超大群) 主动退群后, 所有超大群群成员会收到一条类型为'leaveSuperTeam'的群通知消息。此类群通知消息的from字段的值为退群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象。 'dismissSuperTeam' (解散超大群) 解散超大群后, 所有超大群群成员会收到一条类型为'dismissSuperTeam'的群通知消息。此类群通知消息的from字段为解散群的人的帐号, to字段的值为被对应的群ID。 'transferSuperTeam' (转让超大群) 调用服务端API转让群后, 所有群成员会收到一条类型为'transferSuperTeam'的群通知消息。此类群通知消息的from字段的值为转让群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为为新群主的帐号, attach有一个字段members的值为包含新旧群主的群成员列表。 'addSuperTeamManagers' (添加超大群管理员) 添加群管理员后, 所有群成员会收到一条类型为'addSuperTeamManagers'的群通知消息。此类群通知消息的from字段的值为添加群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被加为管理员的帐号列表, attach有一个字段members的值为被加为管理员的群成员列表。 'removeSuperTeamManagers' (移除超大群管理员)。 移除群管理员后, 所有群成员会收到一条类型为'removeSuperTeamManagers'的群通知消息。此类群通知消息的from字段的值为移除群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被移除的管理员的帐号列表, attach有一个字段members的值为被移除管理员的群成员列表。 'updateSuperTeamMembersMute' (更新超大群成员禁言状态) 更新群成员禁言状态后, 所有群成员会收到一条类型为'updateSuperTeamMembersMute'的群通知消息。此类群通知消息的from字段的值为操作方, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为被禁言的帐号, attach有一个字段members的值为被禁言的群成员列表。 'passSuperTeamApply' (同意入群申请) 用户可以主动申请加入超大群, 目标群的群主和管理员会收到一条类型为'applySuperTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请，那么该群的所有群成员会收到一条类型为'passSuperTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请，那么申请人会收到一条类型为'rejectSuperTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群。 'acceptSuperTeamInvite' (接收入群邀请) 超大群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'superTeamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的超大群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptSuperTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectSuperTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 如果attach有account或者accounts字段, 那么attach的字段users包含这些账号对应的用户名片 更新群昵称不会收到群通知消息, 所有其它在线的群成员会收到初始化SDK时传入的onupdateteammember回调或onUpdateSuperTeamMember回调, 请参考修改自己的超大群属性、修改自己的群属性和修改别人的群昵称 Type: String &lt;static, readonly&gt; scene :String 场景 'p2p' (单人聊天) 'team' (群聊) 'superTeam' (超大群聊天) Type: String &lt;static, readonly&gt; type :String 消息类型 'text' (文本) 'image' (图片) 'audio' (音频) 'video' (视频) 'file' (文件) 'geo' (地理位置) 'custom' (自定义消息) 'tip' (提醒消息) 'robot' (机器人消息) 提醒消息用于会话内的状态提醒，如进入会话时出现的欢迎消息，或者会话命中敏感词后的提示消息等等. 'notification' (群通知消息) 某些群操作后所有群成员会收到一条相应的群通知消息, 详细介绍请参考群通知消息的类型 此类消息不会计入未读数 Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"LoginPort.html":{"id":"LoginPort.html","title":"Class: LoginPort","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: LoginPort LoginPort new LoginPort() 云信允许多端同时登录, LoginPort代表一个登录端 Properties: Name Type Description type String 登录的设备类型 os String 登录设备的操作系统 mac String 登录设备的 mac 地址 deviceId String 登录设备ID, uuid account String 登录的帐号 connectionId Number 登录设备的连接号 ip String 登录的服务器 IP time Number 登录时间 online Boolean 是否在线 Members &lt;static, readonly&gt; type :String 设备类型 'Android' (安卓) 'iOS' (苹果) 'PC' (桌面) 'WindowsPhone' (微软) 'Web' (浏览器) Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"Netcall.html":{"id":"Netcall.html","title":"Class: Netcall","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Netcall Netcall new Netcall() 请使用 Netcall.getInstance 来初始化音视频. Members &lt;static, readonly&gt; CHAT_NET_STATUS_* 网络状态类型 Netcall.CHAT_NET_STATUS_VERY_GOOD 网络状态很好 Netcall.CHAT_NET_STATUS_GOOD 网络状态较好 Netcall.CHAT_NET_STATUS_POOR 网络状态较差 Netcall.CHAT_NET_STATUS_BAD 网络状态很差 Netcall.CHAT_NET_STATUS_VERY_BAD 网络状态极差，考虑是否关闭视频 Netcall.CHAT_NET_STATUS_VERY_BAD_VIDEO_CLOSE 网络状态极差，视频强制关闭 &lt;static, readonly&gt; CHAT_VIDEO_ENCODEMODE_* 视频编码策略 Netcall.CHAT_VIDEO_ENCODEMODE_NORMAL 默认值，清晰优先 Netcall.CHAT_VIDEO_ENCODEMODE_SMOOTH 流畅优先 Netcall.CHAT_VIDEO_ENCODEMODE_QUALITY 清晰优先 Netcall.CHAT_VIDEO_ENCODEMODE_SCREEN 高清，不根据网络情况调整分辨率 &lt;static, readonly&gt; CHAT_VIDEO_FRAME_RATE_* 视频通话帧率，实际帧率因画面采集频率和机器性能限制可能达不到期望值 Netcall.CHAT_VIDEO_FRAME_RATE_NORMAL 视频通话帧率默认值 最大取每秒15帧 Netcall.CHAT_VIDEO_FRAME_RATE_5 视频通话帧率 最大取每秒5帧 Netcall.CHAT_VIDEO_FRAME_RATE_10 视频通话帧率 最大取每秒10帧 Netcall.CHAT_VIDEO_FRAME_RATE_15 视频通话帧率 最大取每秒15帧 Netcall.CHAT_VIDEO_FRAME_RATE_20 视频通话帧率 最大取每秒20帧 Netcall.CHAT_VIDEO_FRAME_RATE_25 视频通话帧率 最大取每秒25帧 &lt;static, readonly&gt; CHAT_VIDEO_QUALITY_* 视频通话分辨率 Netcall.CHAT_VIDEO_QUALITY_NORMAL 视频默认分辨率 640x480 Netcall.CHAT_VIDEO_QUALITY_LOW 视频低分辨率 176x144 Netcall.CHAT_VIDEO_QUALITY_MEDIUM 视频中分辨率 352x288 Netcall.CHAT_VIDEO_QUALITY_HIGH 视频高分辨率 480x320 Netcall.CHAT_VIDEO_QUALITY_480P 视频480p分辨率 640x480 Netcall.CHAT_VIDEO_QUALITY_540P 视频540P分辨率 960x540 Netcall.CHAT_VIDEO_QUALITY_720P 用于桌面分享级别的分辨率 1280x720 ，需要使用高清摄像头并指定对应的分辨率，或者自定义通道传输 &lt;static, readonly&gt; CHAT_VIDEO_SCALE_* 视频画面按比例裁剪，裁剪时不改变横竖屏，默认不裁剪 Netcall.CHAT_VIDEO_SCALE_None 长宽不裁剪，全部显示 Netcall.CHAT_VIDEO_SCALE_1x1 裁剪成1：1的形状 Netcall.CHAT_VIDEO_SCALE_4x3 裁剪成4：3的形状 Netcall.CHAT_VIDEO_SCALE_16x9 裁剪成16：9的形状 &lt;static, readonly&gt; CLIENT_TYPE_* 端类型 Netcall.CLIENT_TYPE_AOS Android Netcall.CLIENT_TYPE_IOS iOS Netcall.CLIENT_TYPE_PC pc Netcall.CLIENT_TYPE_WINPHONE WinPhone Netcall.CLIENT_TYPE_WEB web Netcall.CLIENT_TYPE_REST rest &lt;static, readonly&gt; DEVICE_TYPE_* 设备类型 Netcall.DEVICE_TYPE_AUDIO_IN 麦克风 Netcall.DEVICE_TYPE_AUDIO_OUT_LOCAL 用于播放自己声音的设备 Netcall.DEVICE_TYPE_AUDIO_OUT_CHAT 播放对方声音的扬声器 Netcall.DEVICE_TYPE_VIDEO 摄像头 &lt;static, readonly&gt; LAYOUT_* 直播推流布局 Netcall.LAYOUT_SPLITBOTTOMHORFLOATING 底部横排浮窗 Netcall.LAYOUT_SPLITTOPHORFLOATING 顶部横排浮窗 Netcall.LAYOUT_SPLITLATTICETILE 平铺 Netcall.LAYOUT_SPLITLATTICECUTTINGTILE 裁剪平铺 Netcall.LAYOUT_SPLITCUSTOMLAYOUT 自定义布局 Netcall.LAYOUT_SPLITAUDIOLAYOUT 纯音频布局 &lt;static, readonly&gt; NETCALL_CONTROL_COMMAND_* 控制指令 Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_AUDIO_ON 通知对方自己打开了音频 Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_AUDIO_OFF 通知对方自己关闭了音频 Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_VIDEO_ON 通知对方自己打开了视频 Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_VIDEO_OFF 通知对方自己关闭了视频 Netcall.NETCALL_CONTROL_COMMAND_SWITCH_AUDIO_TO_VIDEO 请求从音频切换到视频 Netcall.NETCALL_CONTROL_COMMAND_SWITCH_AUDIO_TO_VIDEO_AGREE 同意从音频切换到视频 Netcall.NETCALL_CONTROL_COMMAND_SWITCH_AUDIO_TO_VIDEO_REJECT 拒绝从音频切换到视频 Netcall.NETCALL_CONTROL_COMMAND_SWITCH_VIDEO_TO_AUDIO 从视频切换到音频 Netcall.NETCALL_CONTROL_COMMAND_BUSY 占线 Netcall.NETCALL_CONTROL_COMMAND_SELF_CAMERA_INVALID 自己的摄像头不可用 Netcall.NETCALL_CONTROL_COMMAND_SELF_AUDIO_INVALID 自己的麦克风不可用 Netcall.NETCALL_CONTROL_COMMAND_SELF_ON_BACKGROUND 自己处于后台 Netcall.NETCALL_CONTROL_COMMAND_START_NOTIFY_RECEIVED 告诉发送方自己已经收到请求了（用于通知发送方开始播放提示音） Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_RECORD_START 告诉对方自己开始录制视频了 Netcall.NETCALL_CONTROL_COMMAND_NOTIFY_RECORD_STOP 告诉对方自己结束录制视频了 &lt;static, readonly&gt; NETCALL_TYPE_* 音视频通话类型 Netcall.NETCALL_TYPE_AUDIO 音频 Netcall.NETCALL_TYPE_VIDEO 视频 &lt;static, readonly&gt; NETDETECT_* 网络探测类型选择 Netcall.NETDETECT_AUDIO 音频探测 Netcall.NETDETECT_VIDEO 视频探测 Methods &lt;static&gt; getInstance(options) 此接口为单例模式 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description kickLast Boolean &lt;optional&gt; false 是否踢掉上次的通话, 默认 false nim NIM NIM 实例 container Node 播放自己视频画面的dom容器节点 remoteContainer Node 播放对方画面的dom容器节点 mirror Boolean &lt;optional&gt; false agent方式: 是否对自己的画面进行镜像处理, 默认 false mirrorRemote Boolean &lt;optional&gt; false agent方式: 是否对对方的画面进行镜像处理, 默认 false heartbeat Boolean &lt;optional&gt; true 是否心跳（开发者调试用，为了避免断点调试导致心跳超时，正式版本请勿设置） call(options) 发起音视频呼叫 Parameters: Name Type Argument Default Description options Object 配置参数 Properties Name Type Argument Description type Number 通话类型 account String 对方账号 pushConfig Object &lt;optional&gt; 推送配置 Properties Name Type Argument Default Description enable Boolean &lt;optional&gt; true 是否需要推送, 默认 true needBadge Boolean &lt;optional&gt; true 是否需要角标计数, 默认 true needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称, 默认 true pushContent String &lt;optional&gt; 推送内容 custom String &lt;optional&gt; 自定义通知数据 pushPayload String &lt;optional&gt; JSON格式的推送 payload sound String &lt;optional&gt; 推送声音 sessionConfig Object &lt;optional&gt; 会话配置 option.sessionConfig.videoEncodeMode Number &lt;optional&gt; 视频编码策略，默认清晰优先 options.sessionConfig.videoQuality Number &lt;optional&gt; 视频分辨率，实际帧率因画面采集频率和机器性能限制可能达不到期望值 注：该参数发送给对方的分辨率，如果摄像头的分辨率比这个大会缩小，如果摄像头的分辨率比这个小则直接发送 options.sessionConfig.videoFrameRate Number &lt;optional&gt; 视频帧率 options.sessionConfig.videoBitrate Number &lt;optional&gt; 视频码率, &gt;=100000 &lt;= 5000000 有效 options.sessionConfig.highAudio Boolean &lt;optional&gt; false 高清语音开关, 默认关闭 options.sessionConfig.recordVideo Boolean &lt;optional&gt; false 视频录制开关, 默认关闭 options.sessionConfig.recordAudio Boolean &lt;optional&gt; false 音频录制开关, 默认关闭 Returns: Type Promise control(options) 发送音视频通话控制指令 Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Argument Description channelId String &lt;optional&gt; 要发送指令的通话的 channelId, 如果不填那么默认为当前通话 command Number &lt;optional&gt; 可选控制指令请参考 Netcall.NETCALL_CONTROL_COMMAND_* Returns: Type Void createChannel(options) 创建频道 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description channelName Number 频道名称 custom String 扩展字端（用于上层放自定义数据，选填） Returns: Type Promise getAccount() 获取当前登录的 IM 账号 Returns: Type String getStartedDeviceOfType(type) 获取当前开启的指定类型的设备 Parameters: Name Type Description type String 可选设备类型请参考 Netcall.DEVICE_TYPE_* Returns: Type Void getStoredDevicesOfType(type) 获取已经存储的指定类型的所有设备 Parameters: Name Type Description type Number 可选设备类型请参考 Netcall.DEVICE_TYPE_* Returns: Type Void hangup( [channelId]) 挂断音视频通话 Parameters: Name Type Argument Description channelId String &lt;optional&gt; 要挂断的通话的 channelId, 如果不填那么挂断当前通话 Returns: Type Void hasDevicesOfType(type) 是否有指定类型的设备 返回对应的设备信息 Parameters: Name Type Description type String 可选设备类型请参考 Netcall.DEVICE_TYPE_* Returns: Type Void hasStartedDeviceOfType(type) 当前是否有开启指定类型的设备 Parameters: Name Type Description type String 可选设备类型请参考 Netcall.DEVICE_TYPE_* Returns: Type Boolean initSignal() 初始化信令 信令通道初始化完毕之后, 开发者可以启用音视频相关的 UI, 比如说展示呼叫别人的按钮 信令通道初始化失败的时候, 请展示错误并禁用所有音视频相关的 UI 初始化过程中会通过 devices 事件回传所有的设备列表 当信令通道断开时, 会触发 signalClosed 事件 设备状态的错误类型约定:device_busy: 设备被占用agent_update: 插件有更新agent_empty: 没有安装插件 Returns: Type Promise isCurrentChannelId() 是当前会话的 channelId Returns: Type Boolean joinChannel(options) 主动加入频道 Parameters: Name Type Argument Default Description options Object 音视频相关配置参数 Properties Name Type Description channelName String 频道名称 type Number 通话类型 option.liveEnable Boolean 是否开启旁路直播，可选 true / false(默认不开启) options.sessionConfig Object 会话配置 option.sessionConfig.videoEncodeMode Number &lt;optional&gt; 视频编码策略，默认流畅优先(暂不支持实时设置) options.sessionConfig.videoQuality Number 视频分辨率，实际效果因画面采集频率和机器性能限制可能达不到期望值 options.sessionConfig.videoFrameRate Number 视频帧率，实际效果因画面采集频率和机器性能限制可能达不到期望值 options.sessionConfig.videoBitrate Number 视频码率, &gt;=100000 &lt;= 5000000 有效 options.sessionConfig.highAudio Boolean &lt;optional&gt; false 高清语音开关, 默认关闭 options.sessionConfig.recordVideo Boolean &lt;optional&gt; false 视频录制开关, 默认关闭 options.sessionConfig.recordAudio Boolean &lt;optional&gt; false 音频录制开关, 默认关闭 options.sessionConfig.rtmpUrl Boolean 推流地址 options.sessionConfig.rtmpRecord Boolean &lt;optional&gt; false 推流服务端录制开关, 默认关闭 options.sessionConfig.splitMode Boolean 推流的布局, 布局类型默认平铺 options.sessionConfig.layout String 自定义布局，当主播选择推流布局为: LAYOUT_SPLITCUSTOMLAYOUT 和 LAYOUT_SPLITAUDIOLAYOUT 模式时生效 Returns: Type Promise leaveChannel() 离开频道 Returns: Type Promise netDetect( [type] [, quality]) 网络探测 Parameters: Name Type Argument Default Description type Number &lt;optional&gt; Netcall.NETDETECT_AUDIO 探测类型 quality Number &lt;optional&gt; Netcall.CHAT_VIDEO_QUALITY_NORMAL 探测质量分辨率 Returns: Type Void notCurrentChannelId() 不是当前会话的 channelId Returns: Type Boolean response( [options]) 响应音视频被呼叫 调用此接口前需要先初始化信令 Parameters: Name Type Argument Default Description options Object &lt;optional&gt; {} 配置参数 Properties Name Type Argument Default Description accepted Boolean &lt;optional&gt; true true 接听, false 拒绝 beCalledInfo Object 被呼叫的信息, 在 beCalling 事件里可以接收到的信息 sessionConfig Object &lt;optional&gt; 会话配置 option.sessionConfig.videoEncodeMode Number &lt;optional&gt; 视频编码策略，默认清晰优先 options.sessionConfig.videoQuality Number &lt;optional&gt; 视频分辨率，实际帧率因画面采集频率和机器性能限制可能达不到期望值 注：该参数发送给对方的分辨率，如果摄像头的分辨率比这个大会缩小，如果摄像头的分辨率比这个小则直接发送 options.sessionConfig.videoFrameRate Number &lt;optional&gt; 视频帧率 options.sessionConfig.videoBitrate Number &lt;optional&gt; 视频码率, &gt;=100000 &lt;= 5000000 有效 options.sessionConfig.highAudio Boolean &lt;optional&gt; false 高清语音开关, 默认关闭 options.sessionConfig.recordVideo Boolean &lt;optional&gt; false 视频录制开关, 默认关闭 options.sessionConfig.recordAudio Boolean &lt;optional&gt; false 音频录制开关, 默认关闭 options.sessionConfig.recordAudio Boolean &lt;optional&gt; false 录制模式,0:参与混合录制并且录制单人文件 1:只参与混合录制 2:只录制单人文件 options.sessionConfig.recordType Number &lt;optional&gt; 0 音频录制开关, 默认关闭 Returns: Type Promise resumeLocalStream() 继续播放自己的视频画面 #废弃 Returns: Type Void resumeRemoteStream() 继续播放对方的视频画面 #废弃 请使用startRemoteStream Returns: Type Void setAudioBlack(account) 设置目标静音 Parameters: Name Type Description account Number 账号 Returns: Type Void setAudioStart(account) 设置目标非静音 Parameters: Name Type Description account Number 账号 Returns: Type Void setCaptureVolume(num) 设置采集音量 Parameters: Name Type Description num Number 音量大小, 0-255 Returns: Type Void setPlayVolume(options) 设置播放音量 Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Description volume Number 音量大小, 0-255, 必填 Returns: Type Void setVideoScale(options) 裁剪画面尺寸和比例: 不裁剪 / 1:1 / 4:3 / 16 : 9 Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Argument Default Description account String 对象账号，不填操作全部远程流 type Number &lt;optional&gt; Netcall.CHAT_VIDEO_SCALE_None 裁剪比例，默认不裁剪，选值类型请参考 Netcall.CHAT_VIDEO_SCALE_* Returns: Type Promise setVideoViewRemoteSize(options) 设置对方画面的尺寸 最终显示的画面不大于所设置的宽和高 备注：视频画面大小设置完全基于摄像头开启的大小，如果设置的大小超过摄像头开启的大小，结果以摄像头开启尺寸为准! Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Argument Default Description account String 对象账号，不填操作全部远程流 width Number 宽度 height Number 高度 cut Number &lt;optional&gt; true 是否需要剪裁, 默认按1：1比例剪裁(画面不变形), cut: true, 画面按照提供的宽高等比例裁剪，返回裁剪后的实际大小, cut: false, 画面不进行裁剪, 返回按原始宽高比例放大缩小后的实际宽高 注: agent为了解决绿屏的问题，宽高需要设置为8的倍数，即使开发者设置的不是8的倍数，agent也会计算出不超过所设置宽高的最接近8的倍数的宽高 Returns: Type Promise setVideoViewSize(options) 设置自己画面的尺寸 最终显示的画面不大于所设置的宽和高 备注：视频画面大小设置完全基于摄像头开启的大小，如果设置的大小超过摄像头开启的大小，结果以摄像头开启尺寸为准! Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Argument Default Description width Number 宽度 height Number 高度 cut Number &lt;optional&gt; true 是否需要剪裁, 默认按1：1比例剪裁(画面不变形), cut: true, 画面按照提供的宽高等比例裁剪，返回裁剪后的实际大小, cut: false, 画面不进行裁剪, 返回按原始宽高比例放大缩小后的实际宽高 注: agent为了解决绿屏的问题，宽高需要设置为8的倍数，即使开发者设置的不是8的倍数，agent也会计算出不超过所设置宽高的最接近8的倍数的宽高 Returns: Type Promise startDevice(options) 开启设备 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type Number 设备类型 device Object &lt;optional&gt; 设备, 如果没有指定, 那么开启该类型的第一个设备 width Number &lt;optional&gt; 如果启动视频设备, 设置摄像头捕获的视频的最大宽度 height Number &lt;optional&gt; 如果启动视频设备, 设置摄像头捕获的视频的最大高度 Returns: Type Promise startLocalStream(node) 开启本地视频流 Parameters: Name Type Description node Node 本地视频流dom节点 可选 Returns: Type Void startRecordAac(options) 混音本地录制（所有流一起录） Parameters: Name Type Description options Object Properties Name Type Description path String 路径地址 如E:\\wenjian\\abc.aac Returns: Type Promise startRecordMp4(options) 本地录制（录自己） 请监听recordMp4事件为正式开始录制回调 netcall.on('recordMp4',function(data){}) Parameters: Name Type Description options Object Properties Name Type Argument Default Description path String 路径地址 如E:\\wenjian\\abc.mp4 account String &lt;optional&gt; 需要录制的目标，默认录制自己 aac Boolean &lt;optional&gt; false 是否需要混音录制，默认关闭 recode Boolean &lt;optional&gt; true 是否允许视频重新编码，默认开启 width Number &lt;optional&gt; 录制Mp4的宽度，默认为0，小于16无效，无效时取视频默认宽度 height Number &lt;optional&gt; 录制Mp4的高度，默认为0，小于16无效，无效时取视频默认高度 Returns: Type Void startRemoteStream(options) 开启远程视频流 Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Description account String 账号, 不设置则操作所有远程流 node Node 视频画面显示的dom容器节点 Returns: Type Void stopDevice(type) 停止指定类型的设备 Parameters: Name Type Description type String 可选设备类型请参考 Netcall.DEVICE_TYPE_* Returns: Type Void stopLocalStream() 停止本地视频流 Returns: Type Void stopRecordAac() 停止混音本地录制 Returns: Type Promise stopRecordMp4() 停止本地录制（录自己） Returns: Type Promise stopRemoteStream(account) 关闭远程视频流 Parameters: Name Type Description account String 对应的nim账号, 不设置则操作所有远程流 Returns: Type Void stopSignal() 停止信令通道 Returns: Type Promise suspendLocalStream() 暂停播放自己的视频画面 #废弃 Returns: Type Void suspendRemoteStream() 暂停播放对方的视频画面 #废弃 请使用stopRemoteStream Returns: Type Void switchAudioToVideo() 从音频模式切换为视频模式 Returns: Type Void switchVideoToAudio() 从视频模式切换为音频模式 Returns: Type Void updateRtmpUrl(url) 更新推流地址 Parameters: Name Type Description url String 新地址 Returns: Type Promise × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"NetcallWeixin.html":{"id":"NetcallWeixin.html","title":"Class: NetcallWeixin","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: NetcallWeixin NetcallWeixin 音视频操作类，RTC与NRTC业务方法均在此类中，会根据是否传入nim对象动态加载对应的方法，每个方法后面注明了适用场景，敬请注意！ new NetcallWeixin() 请使用 NetcallWeixin.getInstance 来初始化音视频环境. Methods &lt;static&gt; destroy() 清除类引用 Parameters: Type Description Void Returns: Type Void &lt;static&gt; getInstance(options) 此接口为单例模式，获取音视频操作实例 Parameters: Name Type Description options Object 初始配置项 Properties Name Type Argument Description nim Object &lt;optional&gt; im实例，传入此项后会初始化RTC部分API，此时拥有IM+音视频能力；不传则仅仅拥有音视频能力 debug Boolean 是否开启调试, 如果开启调试, 将会在控制台输出一些log。默认false不输出日志, 可以传true来开启日志。 Returns: 小程序音视频操作实例对象 Type Object Example // RTC流程，开启IM+音视频逻辑，`前提需要引入IM的SDK` import NIM from 'path/to/NIM_Web_NIM_weixin.js' import Netcall from 'path/to/NIM_Web_Netcall_weixin.js' NIM.use(Netcall) nim = NIM.getInstance({ // 初始化SDK // debug: true appKey: 'appKey', account: 'account', token: 'token', onconnect: onConnect }) function onConnect() { console.log('连接成功'); netcallInstance = Netcall.getInstance({ debug: true, nim: nim }) netcallInstance.on('syncDone', (data) =&gt; { console.log('音视频通知：同步成功') }) netcallInstance.on('clientLeave', (data) =&gt; { console.log('音视频通知：有人离开了') }) netcallInstance.on('clientJoin', (data) =&gt; { console.log('音视频通知：有人加入了') }) netcallInstance.on('clientUpdate', (data) =&gt; { console.log('音视频通知：有人更新了') }) netcallInstance.on('liveRoomClose', (data) =&gt; { console.log('音视频通知：房间解散了') }) netcallInstance.on('kicked', (data) =&gt; { console.log('音视频通知：被踢了') }) netcallInstance.on('joinChannel', (data) =&gt; { console.log('IM通知：有人加入房间了') }) netcallInstance.on('callAccepted', (data) =&gt; { console.log('IM通知：对方接听了') }) netcallInstance.on('callRejected', (data) =&gt; { console.log('IM通知：对方拒绝了') }) netcallInstance.on('control', (data) =&gt; { console.log('IM通知：收到控制指令') }) netcallInstance.on('hangup', (data) =&gt; { console.log('IM通知：对端挂断了') }) netcallInstance.on('callerAckSync', (data) =&gt; { console.log('IM通知：本通通话在其他端已经处理了') }) } // NRTC流程，只有音视频逻辑，仅拥有实现加入、离开房间能力 import Netcall from 'path/to/NIM_Web_Netcall_weixin.js' netcallInstance = Netcall.getInstance({ debug: true, appkey: 'appkey', }) netcallInstance.on('syncDone', (data) =&gt; { console.log('音视频通知：同步成功') }) netcallInstance.on('clientLeave', (data) =&gt; { console.log('音视频通知：有人离开了') }) netcallInstance.on('clientJoin', (data) =&gt; { console.log('音视频通知：有人加入了') }) netcallInstance.on('clientUpdate', (data) =&gt; { console.log('音视频通知：有人更新了') }) netcallInstance.on('liveRoomClose', (data) =&gt; { console.log('音视频通知：房间解散了') }) netcallInstance.on('kicked', (data) =&gt; { console.log('音视频通知：被踢了') }) call(callRequestParam) &lt;RTC适用&gt;双人通话：主叫发起通话 Parameters: Name Type Description callRequestParam CallRequestParam 请求参数对象 Properties Name Type Description type Number 通话类型：1音频，2视频 callee String 呼叫账号（IM账号） forceKeepCalling Boolean 是否开启持续呼叫，true是开启持续呼叫 pushConfig Object 推送配置 Properties Name Type Description custom String 自定义字段 Returns: Type Promise control(controlParam) &lt;RTC适用&gt;双人通话：通话过程中发送控制指令: 例如开关摄像头、麦克风，音视频互相切换，没有可用设备。详见 Parameters: Name Type Description controlParam controlParam Properties Name Type Argument Description command Number 会话控制指令 cid Number &lt;optional&gt; 要发送指令的通话的 channelId, 如果不填那么默认为当前通话 Returns: Type Promise createChannel() &lt;NRTC适用&gt;创建房间（为了保持接口一致，此接口为空，请勿直接调用） Parameters: Type Description null Returns: Type void createChannel(createChannelRequestParam) &lt;RTC适用&gt;多人通话：创建房间 Parameters: Name Type Description createChannelRequestParam CreateChannelRequestParam 配置对象 Properties Name Type Description channelName String 创建房间名称 Returns: Type Promise getUploadUserList() &lt;NRTC适用&gt;获取当前当前时间下，房间的推流用户列表 Parameters: Type Description Void Returns: Type Void hangup() &lt;RTC适用&gt;双人通话：挂断通话 Parameters: Type Description Void Returns: Type Promise joinChannel(joinChannelParam) &lt;NRTC适用&gt;加入房间 Parameters: Name Type Description joinChannelParam Object Properties Name Type Argument Description channelName String 房间名称 scene Number 通话类型：1:双人、2:多人 accid String 加入房间的用户名称（可重复） mode Number 模式，0音视频，1纯音频，2纯视频，3静默（无音频无视频） role Number 加入用户角色：0主播，1观众（默认0） uid Number &lt;optional&gt; 用户唯一标识（建议五位数以上），如果传入则采用传入值，否则SDK自动生成 rtmpRecord Number &lt;optional&gt; 是否开启互动直播录制，0不需要，1需要（默认0） recordAudio Number &lt;optional&gt; 是否开启音频实时音录制，0不需要，1需要（默认0） recordVideo Number &lt;optional&gt; 是否开启视频实时音录制，0不需要，1需要（默认0） recordType String &lt;optional&gt; 录制模式，0混单（产生混合录制文件+单独录制文件） 1只混（只产生混合录制文件） 2只单（只产生单独录制文件） liveEnable Number &lt;optional&gt; 是否旁路直播,0:不需要,1:需要 Returns: Type Promise joinChannel(joinChannelParam) &lt;RTC适用&gt;多人通话：加入房间 Parameters: Name Type Description joinChannelParam Object 配置对象 Properties Name Type Argument Description channelName String 房间房号，可以任意英文字母和数组的组合 mode Number 模式，0音视频，1纯音频，2纯视频，3静默（无音频无视频） role Number 角色，0-主播 1-观众（默认0） liveEnable String &lt;optional&gt; 是否开启旁路直播，0不需要，1需要 rtmpRecord Number &lt;optional&gt; 是否开启互动直播录制，0不需要，1需要（默认0） recordAudio Number &lt;optional&gt; 是否开启音频实时音录制，0不需要，1需要（默认0） recordVideo Number &lt;optional&gt; 是否开启视频实时音录制，0不需要，1需要（默认0） recordType String &lt;optional&gt; 录制模式，0混单（产生混合录制文件+单独录制文件） 1只混（只产生混合录制文件） 2只单（只产生单独录制文件） Returns: Type Promise leaveChannel() &lt;RTC适用&gt;多人通话：离开房间 Parameters: Type Description Void Returns: Type Promise leaveChannel() &lt;NRTC适用&gt;离开房间 Parameters: Type Description Void Returns: Type Promise response(responseParam) &lt;RTC适用&gt;双人通话：被叫响应通话 Parameters: Name Type Description responseParam Object 配置对象 Properties Name Type Description caller String 呼叫者账号 accepted Boolean 接听与否 type Number 通话类型 1 音频 2 视频 cid String 房间id Returns: Type Promise startRtc() &lt;RTC适用&gt;双人通话：开启音视频通话 Parameters: Name Type Description param.mode Number 模式，0音视频，1纯音频，2纯视频，3静默（无音频无视频） param.recordVideo Number 视频实时音录制 param.recordAudio Number 音频实时音录制 param.rtmpRecord Number 互动直播录制 param.recordType String 录制模式 0-混单 1-只混 2-只单 param.isHostSpeaker Number 是否是主讲人，默认false Returns: Type Promise switchMode(mode) &lt;RTC适用&gt;更新推流模式，注意同步切换live-pusher组件的摄像头以及麦克风状态。音视频：打开麦克风摄像头；纯音频：打开麦克风关闭摄像头；纯视频：关闭麦克风打开摄像头；静默：关闭麦克风摄像头 Parameters: Name Type Description mode Number 模式，0音视频，1纯音频，2纯视频 3 静默 Returns: Type Promise switchMode(mode) &lt;NRTC适用&gt;更新推流模式，注意同步切换live-pusher组件的摄像头以及麦克风状态。音视频：打开麦克风摄像头；纯音频：打开麦克风关闭摄像头；纯视频：关闭麦克风打开摄像头；静默：关闭麦克风摄像头 Parameters: Name Type Description mode Number 模式，0音视频，1纯音频，2纯视频 3 静默 Returns: Type Void × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"NIM.html":{"id":"NIM.html","title":"Class: NIM","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: NIM NIM new NIM() 请使用 NIM.getInstance 来初始化 SDK.此接口为单例模式, 对于同一个账号, 永远返回同一份实例, 即只有第一次调用会初始化一个实例, 后续调用此接口会直接返回初始化过的实例. Methods &lt;static&gt; getInstance(options) 此接口为单例模式, 对于同一个账号, 永远返回同一份实例, 即只有第一次调用会初始化一个实例 后续调用此接口会直接返回初始化过的实例, 同时也会调用接口setOptions更新传入的配置 后续调用此接口时, 如果连接已断开, 会自动建立连接 当发生掉线时，SDK会自动进行重连 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description debug Boolean | Object &lt;optional&gt; false 是否开启调试, 如果开启调试, 将会在控制台输出一些log。默认false不输出日志, 可以传true来开启日志。 logFunc function | Object &lt;optional&gt; null 是否对日志做额外的处理，诸如日志存储、日志上报等等，该函数会截获console日志的参数，供开发者使用 secure Boolean | Object &lt;optional&gt; true secure 模式下会通过 https 协议跟服务器建立连接, 非 secure 模式下会通过 http 协议跟服务器建立连接, 默认 true appKey String 在云信管理后台查看应用的 appKey account String 帐号, 应用内唯一 token String 帐号的 token, 用于建立连接 nosScenes String &lt;optional&gt; 'im' nos文件存储全局配置，存储场景，实例有效，默认im nosSurvivalTime Number &lt;optional&gt; Infinity nos文件存储全局配置，存储有效时间，实例有效，默认Infinity 不得小于一天，单位秒 customTag String &lt;optional&gt; 客户端自定义tag，登录时多端同步改字段，最大32个字符 onconnect function &lt;optional&gt; 连接建立后的回调, 会传入一个对象, 包含登录的信息, 有以下字段 lastLoginDeviceId: 上次登录的设备的设备号 customTag: 客户端自定义tag,登录时多端同步改字段，最大32个字符 connectionId: 本次登录的连接号 ip: 客户端IP port: 客户端端口 country: 本次登录的国家 onwillreconnect function &lt;optional&gt; 即将重连的回调 此时说明 SDK 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接 此回调会收到一个对象, 包含额外的信息, 有以下字段 duration: 距离下次重连的时间 retryCount: 重连尝试的次数 ondisconnect function &lt;optional&gt; 断开连接后的回调 此时说明 SDK 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面 此回调会收到一个对象, 包含错误的信息, 有以下字段 code: 出错时的错误码, 可能为空 302: 账号或者密码错误, 请跳转到登录页面并提示错误 417: 重复登录, 已经在其它端登录了, 请跳转到登录页面并提示错误 'kicked': 被踢 当code为'kicked'的时候, 此对象会有以下字段 reason: 被踢的原因 samePlatformKick: 不允许同一个帐号在多个地方同时登录 serverKick: 被服务器踢了 otherPlatformKick: 被其它端踢了 message: 文字描述的被踢的原因 onerror function &lt;optional&gt; 发生错误的回调, 会传入错误对象 onloginportschange function &lt;optional&gt; 多端登录状态变化的回调, 会收到登录端列表, 以下情况会收到此回调 登录时其它端在线 登录后其它端上线或者下线 syncRelations Boolean &lt;optional&gt; true 是否同步黑名单和静音列表, 默认true. 如果传false就收不到黑名单和静音列表, 即不会收到onblacklist回调和onmutelist回调, 开发者后续可以调用获取黑名单和静音列表来获取黑名单和静音列表。 onblacklist function &lt;optional&gt; 同步黑名单的回调, 会传入黑名单列表blacklist blacklist的属性invalid包含被删除的黑名单列表 此回调是增量回调, 可以调用nim.mergeRelations和nim.cutRelations来合并数据 onsyncmarkinblacklist function &lt;optional&gt; 当前登录用户在其它端加入黑名单/从黑名单移除后的回调, 会传入一个参数, 包含两个字段 account: 要加入黑名单/从黑名单移除的账号 isAdd: true表示加入黑名单, false表示从黑名单移除 onmutelist function &lt;optional&gt; 同步静音列表的回调, 会传入静音列表mutelist mutelist的属性invalid包含被删除的静音列表 此回调是增量回调, 可以调用nim.mergeRelations和nim.cutRelations来合并数据 onsyncmarkinmutelist function &lt;optional&gt; 当前登录用户在其它端加入静音列表/从静音列表移除后的回调, 会传入一个参数, 包含两个字段 account: 要加入黑名单/从黑名单移除的账号 isAdd: true表示加入静音列表, false表示从静音列表移除 syncFriends Boolean &lt;optional&gt; 是否同步好友列表, 默认true. 如果传false就收不到onfriends回调, 开发者后续可以调用获取好友列表来获取好友列表。 onfriends function &lt;optional&gt; 同步好友列表的回调, 会传入好友列表。没有好友时，使用数据库会调用回调传空数组，否则不回调。 onsyncfriendaction function &lt;optional&gt; 当前登录用户在其它端进行好友相关的操作后的回调 操作包括 直接加为好友 申请加为好友 通过好友申请 拒绝好友申请 删除好友 更新好友 此回调会收到一个参数obj, 它有一个字段type的值为操作的类型, 具体类型如下： 'addFriend' (直接加为好友), 此时obj的字段如下: account的值为被直接加为好友的账号 friend为被直接加为好友的好友对象 ps为附言 'applyFriend' (申请加为好友), 此时obj的字段如下: account的值为被申请加为好友的账号 ps为附言 'passFriendApply' (通过好友申请), 此时obj的字段如下: account的值为被通过好友申请的账号 friend为被通过好友申请的好友对象 ps为附言 'rejectFriendApply' (拒绝好友申请), 此时obj的字段如下: account的值为被拒绝好友申请的账号 ps为附言 'deleteFriend' (删除好友), 此时obj的字段如下: account的值为被删除好友的账号 'updateFriend' (更新好友), 此时obj的字段如下: friend的值为被更新的好友对象 onmyinfo function &lt;optional&gt; 同步登录用户名片的回调, 会传入用户名片 onupdatemyinfo function &lt;optional&gt; 当前登录用户在其它端修改自己的个人名片之后的回调, 会传入用户名片 syncFriendUsers Boolean &lt;optional&gt; 是否同步好友对应的用户名片列表, 默认true, 如果传false就收不到onusers回调. onusers function &lt;optional&gt; 同步好友用户名片的回调, 会传入用户名片数组 onupdateuser function &lt;optional&gt; 用户名片更新后的回调, 会传入用户名片 syncSuperTeams Boolean &lt;optional&gt; true 是否同步超大群列表, 默认true. 如果传false就收不到群列表, 即不会收到onSuperTeams回调, 开发者后续可以调用获取超大群列表来获取群列表. onSuperTeams function &lt;optional&gt; 同步超大群列表的回调, 会传入超大群数组 onSyncCreateSuperTeam function &lt;optional&gt; 当前登录者创建超大群后的回调, 会传入超大群 onUpdateSuperTeam function &lt;optional&gt; 更新超大群的回调, 此方法接收一个参数, 更新后的群信息 onUpdateSuperTeamMember function &lt;optional&gt; 群成员信息更新后的回调, 会传入超大群群成员对象, 不过此时的信息是不完整的, 只会包括被更新的字段。当前登录帐号在其它端修改自己在群里面的昵称时也会收到此回调 onAddSuperTeamMembers function &lt;optional&gt; 新成员入超大群的回调, 此方法接收一个参数, 包含群信息和群成员信息 onRemoveSuperTeamMembers function &lt;optional&gt; 有人出超大群的回调, 此方法接收一个参数, 包含群信息和被移除的群成员账号 onDismissSuperTeam function &lt;optional&gt; 超大群解散的回调, 所有群成员均会收到该回调。此方法接收一个参数, 包含被解散的群id onTransferSuperTeam function &lt;optional&gt; 移交超大群的回调, 此方法接收一个参数, 包含群信息和新老群主信息 onUpdateSuperTeamMembersMute function &lt;optional&gt; 更新超大群群成员禁言状态的回调, 此方法接收一个参数, 包含群信息和禁言状态信息 syncTeams Boolean &lt;optional&gt; true 是否同步群列表, 默认true. 如果传false就收不到群列表, 即不会收到onteams回调, 开发者后续可以调用获取群列表来获取群列表. syncExtraTeamInfo Boolean &lt;optional&gt; 是否同步额外的群信息, 默认true会同步额外的群信息, 目前包括 当前登录用户是否开启某个群的消息提醒 (SDK 只是存储了此信息, 具体用此信息来做什么事情完全由开发者控制) 调用接口NIM#updateInfoInTeam来关闭/开启某个群的消息提醒 调用接口NIM#notifyForNewTeamMsg来查询是否需要群消息通知 onteams function &lt;optional&gt; 同步群列表的回调, 会传入群数组teams teams的属性invalid包含退出的群 onsynccreateteam function &lt;optional&gt; 当前登录用户在其它端创建群后的回调, 会传入群对象 syncTeamMembers Boolean &lt;optional&gt; true 是否同步群成员, 默认true. 只有在syncTeams=true的时候才起作用, 如果传false就不会同步群成员, 即不会收到onteammembers和onsyncteammembersdone回调, 开发者后续可以调用获取群成员来获取群成员. onteammembers function &lt;optional&gt; 同步群成员的回调, 一个群对应一个回调, 会传入群成员数组 onsyncteammembersdone function &lt;optional&gt; 当syncTeams和syncTeamMembers同时为true时, 会同步所有群的群成员, 当所有群的群成员同步结束时, 会调用此回调 onupdateteammember function &lt;optional&gt; 群成员信息更新后的回调, 会传入群成员对象, 不过此时的信息是不完整的, 只会包括被更新的字段。当前登录帐号在其它端修改自己在群里面的昵称时也会收到此回调。 onCreateTeam function &lt;optional&gt; 创建群的回调, 此方法接收一个参数, 包含群信息和群主信息 onUpdateTeam function &lt;optional&gt; 更新群的回调, 此方法接收一个参数, 更新后的群信息 onAddTeamMembers function &lt;optional&gt; 新成员入群的回调, 此方法接收一个参数, 包含群信息和群成员信息 onRemoveTeamMembers function &lt;optional&gt; 有人出群的回调, 此方法接收一个参数, 包含群信息和群成员账号 onUpdateTeamManagers function &lt;optional&gt; 更新群管理员的回调, 此方法接收一个参数, 包含群信息和管理员信息 onDismissTeam function &lt;optional&gt; 解散群的回调, 此方法接收一个参数, 包含被解散的群id onTransferTeam function &lt;optional&gt; 移交群的回调, 此方法接收一个参数, 包含群信息和新老群主信息 onUpdateTeamMembersMute function &lt;optional&gt; 更新群成员禁言状态的回调, 此方法接收一个参数, 包含群信息和禁言状态信息 syncSessionUnread Boolean &lt;optional&gt; false 是否同步会话的未读数, 默认不同步 如果选择同步 那么在一个端读过的会话在其它端也会被标记为已读 在调用NIM#setCurrSession的时候 SDK 会自动同步一次未读数, 此后如果收到当前会话的消息, 需要手动调用NIM#resetSessionUnread来同步未读数 onupdatesession function &lt;optional&gt; 更新会话的回调, 会传入会话, 以下情况会收到此回调 收到消息 发送消息 设置当前会话 重置会话未读数 syncStickTopSessions Boolean &lt;optional&gt; 是否同步置顶会话，默认false，如果传true，则在有置顶会话时，可以收到onStickTopSessions回调，传false则不会 onStickTopSessions function &lt;optional&gt; 同步置顶会话列表, 会传入会话列表 onSyncUpdateServerSession function &lt;optional&gt; 更新服务端会话在线多端同步回调。多端登录时，一端调用NIM#updateServerSession更新了服务端会话，其他端会收到该同步回调 onSessionsWithMoreRoaming function &lt;optional&gt; 同步还有更多漫游消息的会话列表。会传入会话列表，其中的time字段代表该会话在此时间之前的本地漫游消息是不完整的。开发者可以通过获取历史消息的方式获取该时间之前的完整消息列表 shouldIgnoreMsg function &lt;optional&gt; 是否要忽略某消息。该方法会接收一个消息对象，如果该方法返回 true, 那么 SDK 将忽略此条消息（不计未读数，不当lastMsg，不存数据库，不触发onmsg通知） shouldIgnoreNotification function &lt;optional&gt; 是否要忽略某条通知类消息, 该方法会接收一个消息对象, 如果该方法返回 true, 那么 SDK 将忽略此条通知类消息 shouldCountNotifyUnread function &lt;optional&gt; 通知类消息是否要计入未读数，该方法接收一个消息消息，如果返回true，则将该通知消息计入未读数，否则不计入未读数 syncRoamingMsgs Boolean &lt;optional&gt; true 是否同步漫游消息, 默认true. 如果传false就收不到漫游消息, 即不会收到onroamingmsgs回调. syncSuperTeamRoamingMsgs Boolean &lt;optional&gt; true 是否额外同步大群漫游消息, 默认true. 如果传false就不会收到超大群的 onroamingmsgs 回调. onroamingmsgs function &lt;optional&gt; 同步漫游消息(包括超大群漫游消息和其他漫游消息)的回调, 每个会话对应一个回调, 会传入消息数组 onofflinemsgs function &lt;optional&gt; 同步离线消息的回调, 每个会话对应一个回调, 会传入消息数组 onmsg function &lt;optional&gt; 收到消息的回调, 会传入消息对象 当前登录帐号在其它端发送消息之后也会收到此回调, 注意此时消息对象的from字段就是当前登录的帐号 onQuickComment function &lt;optional&gt; 收到快捷评论，会传入两个参数，分别是对应的消息和评论 onDeleteQuickComment function &lt;optional&gt; 收到删除了快捷评论，会传入两个参数，分别是对应的消息和评论 onPinMsgChange function &lt;optional&gt; 收到PIN变更，会传入两个参数，第一个参数是变更的类型，第二个参数是一个对象，有msg和pinTag两个属性，分别是被PIN的消息和PIN操作的相关信息 新增/删除/更新 PIN都会收到该回调，三种变更对应的第一个参数分别是add、delete、update 第二个参数的pinTag属性是一个对象，有pinFrom、pinCustom、createTime、updateTime四个字段，分别代表pin的操作者、扩展字段、创建时间和更新时间 syncMsgReceipts Boolean &lt;optional&gt; 是否同步已读回执时间戳, 默认true. 如果传false就收不到已读回执时间戳. onofflinesysmsgs function &lt;optional&gt; 同步离线系统通知的回调, 会传入系统通知数组 onroamingsysmsgs function &lt;optional&gt; 同步漫游系统通知的回调, 会传入系统通知数组 onsysmsg function &lt;optional&gt; 收到系统通知的回调, 会传入系统通知 onupdatesysmsg function &lt;optional&gt; 更新系统通知后的回调, 会传入系统通知 以下情况会收到此回调 通过好友申请 拒绝好友申请 接受入群邀请 拒绝入群邀请 通过入群申请 拒绝入群申请 这些操作的发起方会收到此回调, 接收被更新的系统通知, 根据操作的类型系统通知会被更新为下面两种状态 'passed': 已通过 'rejected': 已拒绝 onsysmsgunread function &lt;optional&gt; 收到系统通知未读数的回调 SDK 会管理内建系统通知的未读数, 此回调接收的对象包括以下字段 total: 总共的未读数 friend: 所有跟好友相关的系统通知的未读数 addFriend: 直接加为好友的未读数 applyFriend: 申请加为好友的未读数 passFriendApply: 通过好友申请的未读数 rejectFriendApply: 拒绝好友申请的未读数 deleteFriend: 删除好友的未读数 team: 所有跟群相关的系统通知的未读数 teamInvite: 入群邀请的未读数 rejectTeamInvite: 接受入群邀请的未读数 applyTeam: 入群申请的未读数 rejectTeamApply: 拒绝入群申请的未读数 onupdatesysmsgunread function &lt;optional&gt; 更新系统通知未读数的回调 onofflinecustomsysmsgs function &lt;optional&gt; 同步离线自定义系统通知的回调, 会传入系统通知数组 oncustomsysmsg function &lt;optional&gt; 收到自定义系统通知的回调, 会传入系统通知 onDeleteMsgSelf function &lt;optional&gt; 收到单向撤回消息的回调, 会传入被删除的消息数组 onsyncdone function &lt;optional&gt; 当上面各个同步（不包括下面的同步群成员）完成后, 会调用此回调；注意, SDK保证在onsyncdone调用的时候上面的同步肯定完成了, 但是不保证各个同步回调的顺序。 autoMarkRead Boolean &lt;optional&gt; true 是否自动标记消息为已收到 默认情况下SDK在收到服务器推送过来的消息后, 会在将消息推给开发者时将消息标记为已读状态, 下次登录后就不会收到标记为已读的消息。 SDK通过onofflinemsgs、onofflinesysmsgs、onofflinecustomsysmsgs等回调将离线消息推送给开发者 SDK通过onmsg、onsysmsg、oncustomsysmsg等回调将在线消息推送给开发者 如果开发者想控制标记消息为已收到的时机, 那么可以传false, 这样SDK就不会自动标记消息已读, 此时需要开发者在适当的时机调用相关的方法来标记消息为已读, 否则下次登录后还会收到未标记为已读的消息。 调用标记系统通知已读来标记系统通知和自定义系统通知为已读状态 db Boolean &lt;optional&gt; true 是否使用数据库 在支持数据库的浏览器上 SDK 会将数据缓存到数据库中, 后续同步都是增量更新, 加快初始化速度 如果开发者不想使用数据库, 那么可以设置db为false来禁用数据库 syncBroadcastMsgs Boolean &lt;optional&gt; false 是否同步离线广播 onbroadcastmsgs function &lt;optional&gt; 同步到离线广播消息的回调，仅当options.syncBroadcastMsgs=true时，才会同步离线广播消息 onbroadcastmsg function &lt;optional&gt; 在线时收到广播消息的回调 thumbnailToStatic Boolean &lt;optional&gt; true 是否将动态图片缩略为静态图片，默认将动态图片缩略为静态图片 仅在cover和contain缩略模式下，才支持将动态图片缩略为动态图片，其他模式下只能缩略为静态图片 可以调用SDK的thumbnailImage，processImage等API生成图片的缩略图 rollbackDelMsgUnread Boolean &lt;optional&gt; false 撤回消息后是否更新该消息影响的会话未读数。如某会话有两条消息未读，然后其中一条消息被撤回了，若该参数为true，则未读数变为1，否则未读数仍是2 logReport Boolean &lt;optional&gt; false 是否上报异常错误日志，可以将该项设为 false 来禁止上报错误日志 SDK会将部分错误及相关信息上传至云信统计平台，方便开发者统计及排查线上错误 defaultLink String &lt;optional&gt; lbs请求出错时，SDK会尝试连接该地址。默认连接云信的备用地址 Example var data = {}; var nim = new NIM({ // 初始化SDK // debug: true appKey: 'appKey', account: 'account', token: 'token', onconnect: onConnect, onerror: onError, onwillreconnect: onWillReconnect, ondisconnect: onDisconnect, // 多端 onloginportschange: onLoginPortsChange, // 用户关系 onblacklist: onBlacklist, onsyncmarkinblacklist: onMarkInBlacklist, onmutelist: onMutelist, onsyncmarkinmutelist: onMarkInMutelist, // 好友关系 onfriends: onFriends, onsyncfriendaction: onSyncFriendAction, // 用户名片 onmyinfo: onMyInfo, onupdatemyinfo: onUpdateMyInfo, onusers: onUsers, onupdateuser: onUpdateUser, // 超大群 onSuperTeams: onSuperTeams, onSyncCreateSuperTeam: onSyncCreateSuperTeam, onDismissSuperTeam: onDismissSuperTeam, onUpdateSuperTeamMember: onUpdateSuperTeamMember, onUpdateSuperTeam: onUpdateSuperTeam, // 更新超大群的回调 onAddSuperTeamMembers: onAddSuperTeamMembers, // 新成员入超大群的回调 onRemoveSuperTeamMembers: onRemoveSuperTeamMembers // 群组 onteams: onTeams, onsynccreateteam: onCreateTeam, onteammembers: onTeamMembers, onsyncteammembersdone: onSyncTeamMembersDone, onupdateteammember: onUpdateTeamMember, // 会话 onsessions: onSessions, onupdatesession: onUpdateSession, // 消息 onroamingmsgs: onRoamingMsgs, onofflinemsgs: onOfflineMsgs, onmsg: onMsg, // 系统通知 onofflinesysmsgs: onOfflineSysMsgs, onsysmsg: onSysMsg, onupdatesysmsg: onUpdateSysMsg, onsysmsgunread: onSysMsgUnread, onupdatesysmsgunread: onUpdateSysMsgUnread, onofflinecustomsysmsgs: onOfflineCustomSysMsgs, oncustomsysmsg: onCustomSysMsg, // 同步完成 onsyncdone: onSyncDone }); function onConnect() { console.log('连接成功'); } function onWillReconnect(obj) { // 此时说明 `SDK` 已经断开连接, 请开发者在界面上提示用户连接已断开, 而且正在重新建立连接 console.log('即将重连', obj); } function onDisconnect(error) { // 此时说明 `SDK` 处于断开状态, 开发者此时应该根据错误码提示相应的错误信息, 并且跳转到登录页面 console.log('连接断开', error); if (error) { switch (error.code) { // 账号或者密码错误, 请跳转到登录页面并提示错误 case 302: break; // 重复登录, 已经在其它端登录了, 请跳转到登录页面并提示错误 case 417: break; // 被踢, 请提示错误后跳转到登录页面 case 'kicked': break; default: break; } } } function onError(error, obj) { console.log('发生错误', error, obj); } function onLoginPortsChange(loginPorts) { console.log('当前登录帐号在其它端的状态发生改变了', loginPorts); } function onBlacklist(blacklist) { console.log('收到黑名单', blacklist); data.blacklist = nim.mergeRelations(data.blacklist, blacklist); data.blacklist = nim.cutRelations(data.blacklist, blacklist.invalid); refreshBlacklistUI(); } function onMarkInBlacklist(obj) { console.log(obj.account + '被你' + (obj.isAdd ? '加入' : '移除') + '黑名单', obj); if (obj.isAdd) { addToBlacklist(obj); } else { removeFromBlacklist(obj); } } function addToBlacklist(obj) { data.blacklist = nim.mergeRelations(data.blacklist, obj.record); refreshBlacklistUI(); } function removeFromBlacklist(obj) { data.blacklist = nim.cutRelations(data.blacklist, obj.record); refreshBlacklistUI(); } function refreshBlacklistUI() { // 刷新界面 } function onMutelist(mutelist) { console.log('收到静音列表', mutelist); data.mutelist = nim.mergeRelations(data.mutelist, mutelist); data.mutelist = nim.cutRelations(data.mutelist, mutelist.invalid); refreshMutelistUI(); } function onMarkInMutelist(obj) { console.log(obj.account + '被你' + (obj.isAdd ? '加入' : '移除') + '静音列表', obj); if (obj.isAdd) { addToMutelist(obj); } else { removeFromMutelist(obj); } } function addToMutelist(obj) { data.mutelist = nim.mergeRelations(data.mutelist, obj.record); refreshMutelistUI(); } function removeFromMutelist(obj) { data.mutelist = nim.cutRelations(data.mutelist, obj.record); refreshMutelistUI(); } function refreshMutelistUI() { // 刷新界面 } function onFriends(friends) { console.log('收到好友列表', friends); data.friends = nim.mergeFriends(data.friends, friends); data.friends = nim.cutFriends(data.friends, friends.invalid); refreshFriendsUI(); } function onSyncFriendAction(obj) { console.log('收到好友操作', obj); switch (obj.type) { case 'addFriend': console.log('你在其它端直接加了一个好友' + obj); onAddFriend(obj.friend); break; case 'applyFriend': console.log('你在其它端申请加了一个好友' + obj); break; case 'passFriendApply': console.log('你在其它端通过了一个好友申请' + obj); onAddFriend(obj.friend); break; case 'rejectFriendApply': console.log('你在其它端拒绝了一个好友申请' + obj); break; case 'deleteFriend': console.log('你在其它端删了一个好友' + obj); onDeleteFriend(obj.account); break; case 'updateFriend': console.log('你在其它端更新了一个好友', obj); onUpdateFriend(obj.friend); break; } } function onAddFriend(friend) { data.friends = nim.mergeFriends(data.friends, friend); refreshFriendsUI(); } function onDeleteFriend(account) { data.friends = nim.cutFriendsByAccounts(data.friends, account); refreshFriendsUI(); } function onUpdateFriend(friend) { data.friends = nim.mergeFriends(data.friends, friend); refreshFriendsUI(); } function refreshFriendsUI() { // 刷新界面 } function onMyInfo(user) { console.log('收到我的名片', user); data.myInfo = user; updateMyInfoUI(); } function onUpdateMyInfo(user) { console.log('我的名片更新了', user); data.myInfo = NIM.util.merge(data.myInfo, user); updateMyInfoUI(); } function updateMyInfoUI() { // 刷新界面 } function onUsers(users) { console.log('收到用户名片列表', users); data.users = nim.mergeUsers(data.users, users); } function onUpdateUser(user) { console.log('用户名片更新了', user); data.users = nim.mergeUsers(data.users, user); } function onSuperTeams (superTeams) { console.log('收到超大群列表', superTeams) data.superTeams = nim.mergeTeams(data.superTeams, superTeams) onInvalidSuperTeams(superTeams.invalid) } function onInvalidSuperTeams (teams) { data.superTeams = nim.cutTeams(data.superTeams, teams) data.invalidSuperTeams = nim.mergeTeams(data.invalidSuperTeams, teams) refreshSuperTeamsUI() } function onSyncCreateSuperTeam (team, owner) { console.log('创建了一个超大群 onSyncCreateSuperTeam ', team, owner) data.superTeams = nim.mergeTeams(data.superTeams, team) refreshSuperTeamsUI() onSuperTeamMembers({ teamId: team.teamId, members: owner }) } function onAddSuperTeamMembers (team, accounts, members) { console.log('添加群成员 onAddSuperTeamMembers ', team, accounts, members) if (!accounts &amp;&amp; !members) { accounts = team.accounts || [] members = team.members || [] team = team.team || {} } var teamId = team.teamId // 如果是别人被拉进来了，那么拼接群成员列表 // 如果是自己被拉进来了，那么同步一次群成员列表 if (accounts.indexOf(data.account) === -1) { onSuperTeamMembers({ teamId: teamId, members: members }) } else { // ... } onSuperTeams(team) } function onDismissSuperTeam(obj) { console.log('解散超大群 onDismissSuperTeam', obj); var teamId = obj.teamId removeAllSuperTeamMembers(teamId) data.superTeams = nim.cutTeams(data.superTeams, obj) refreshSuperTeamsUI() refreshSuperTeamMembersUI() } function onRemoveSuperTeamMembers (obj) { console.log('移除了群成员 onRemoveSuperTeamMembers ', obj.accounts, obj) var teamId = obj.team.teamId var accounts = obj.accounts var team if (!teamId &amp;&amp; !accounts) { accounts = obj.accounts || [] } // 如果是别人被踢了，那么移除群成员 // 如果是自己被踢了，那么离开该群 if (accounts.indexOf(data.account) === -1) { if (team) { onSuperTeams(team) } if (!data.superTeamMembers) { data.superTeamMembers = {} } data.superTeamMembers[teamId] = nim.cutTeamMembersByAccounts( data.superTeamMembers[teamId], teamId, accounts ) refreshSuperTeamMembersUI() } else { leaveSuperTeam(teamId) } } function onUpdateSuperTeam(err, msg) { console.log('更新了超大群 teamId', err, msg) } function onUpdateSuperTeamMember (member) { console.log('群成员信息更新了', member) } function leaveSuperTeam (teamId) { onInvalidSuperTeams({ teamId: teamId }) removeAllSuperTeamMembers(teamId) } function refreshSuperTeamsUI () { } function refreshSuperTeamMembersUI () { } function removeAllSuperTeamMembers () { } function onTeams(teams) { console.log('群列表', teams); data.teams = nim.mergeTeams(data.teams, teams); onInvalidTeams(teams.invalid); } function onInvalidTeams(teams) { data.teams = nim.cutTeams(data.teams, teams); data.invalidTeams = nim.mergeTeams(data.invalidTeams, teams); refreshTeamsUI(); } function onCreateTeam(team) { console.log('你创建了一个群', team); data.teams = nim.mergeTeams(data.teams, team); refreshTeamsUI(); onTeamMembers({ teamId: team.teamId, members: owner }); } function refreshTeamsUI() { // 刷新界面 } function onTeamMembers(obj) { console.log('收到群成员', obj); var teamId = obj.teamId; var members = obj.members; data.teamMembers = data.teamMembers || {}; data.teamMembers[teamId] = nim.mergeTeamMembers(data.teamMembers[teamId], members); data.teamMembers[teamId] = nim.cutTeamMembers(data.teamMembers[teamId], members.invalid); refreshTeamMembersUI(); } function onSyncTeamMembersDone() { console.log('同步群列表完成'); } function onUpdateTeamMember(teamMember) { console.log('群成员信息更新了', teamMember); onTeamMembers({ teamId: teamMember.teamId, members: teamMember }); } function refreshTeamMembersUI() { // 刷新界面 } function onSessions(sessions) { console.log('收到会话列表', sessions); data.sessions = nim.mergeSessions(data.sessions, sessions); updateSessionsUI(); } function onUpdateSession(session) { console.log('会话更新了', session); data.sessions = nim.mergeSessions(data.sessions, session); updateSessionsUI(); } function updateSessionsUI() { // 刷新界面 } function onRoamingMsgs(obj) { console.log('漫游消息', obj); pushMsg(obj.msgs); } function onOfflineMsgs(obj) { console.log('离线消息', obj); pushMsg(obj.msgs); } function onMsg(msg) { console.log('收到消息', msg.scene, msg.type, msg); pushMsg(msg); } function pushMsg(msgs) { if (!Array.isArray(msgs)) { msgs = [msgs]; } var sessionId = msgs[0].sessionId; data.msgs = data.msgs || {}; data.msgs[sessionId] = nim.mergeMsgs(data.msgs[sessionId], msgs); } function onOfflineSysMsgs(sysMsgs) { console.log('收到离线系统通知', sysMsgs); pushSysMsgs(sysMsgs); } function onSysMsg(sysMsg) { console.log('收到系统通知', sysMsg) pushSysMsgs(sysMsg); } function onUpdateSysMsg(sysMsg) { pushSysMsgs(sysMsg); } function pushSysMsgs(sysMsgs) { data.sysMsgs = nim.mergeSysMsgs(data.sysMsgs, sysMsgs); refreshSysMsgsUI(); } function onSysMsgUnread(obj) { console.log('收到系统通知未读数', obj); data.sysMsgUnread = obj; refreshSysMsgsUI(); } function onUpdateSysMsgUnread(obj) { console.log('系统通知未读数更新了', obj); data.sysMsgUnread = obj; refreshSysMsgsUI(); } function refreshSysMsgsUI() { // 刷新界面 } function onOfflineCustomSysMsgs(sysMsgs) { console.log('收到离线自定义系统通知', sysMsgs); } function onCustomSysMsg(sysMsg) { console.log('收到自定义系统通知', sysMsg); } function onSyncDone() { console.log('同步完成'); } acceptSuperTeamInvite(options) 接受入群邀请 群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptSuperTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectSuperTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idServer String 对应的系统通知的 idServer teamId String 群id from String 邀请方的帐号 done done 结果回调函数, 成功时会收到群资料 See: 拒绝入群邀请 拉人入群 获取群成员 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.acceptSuperTeamInvite({ idServer: sysMsg.idServer, teamId: '123', from: 'zyy1', done: acceptSuperTeamInviteDone }); function acceptSuperTeamInviteDone(error, obj) { console.log('接受入群邀请' + (!error?'成功':'失败'), error, obj); } acceptTeamInvite(options) 接受入群邀请 高级群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idServer String 对应的系统通知的 idServer teamId String 群id from String 邀请方的帐号 done done 结果回调函数, 成功时会收到群资料 See: 拒绝入群邀请 拉人入群 获取群成员 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.acceptTeamInvite({ idServer: sysMsg.idServer, teamId: '123', from: 'zyy1', done: acceptTeamInviteDone }); function acceptTeamInviteDone(error, obj) { console.log('接受入群邀请' + (!error?'成功':'失败'), error, obj); } addCollect(options, done) 增加一个收藏 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type Number 收藏的类型，只能是整数，开发者可自定义映射规则 data String 收藏的具体内容，最大20480 uniqueId String &lt;optional&gt; 唯一ID，可用于去重。当传入uniqueId时，会校验该ID之前是否存在，如不存在则会新增一个收藏，如存在则会更新之 custom String &lt;optional&gt; 扩展字段，最大1024 done function 结果回调函数，第一个参数是error，第二个参数有一个collect属性，是新增收藏对象 addFriend(options) 直接加为好友 直接加某个用户为好友后, 对方不需要确认, 直接成为当前登录用户的好友。 对方会收到一条类型为'addFriend'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为接收方的账号。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 要直接加为好友的账号 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 申请加为好友 通过好友申请 拒绝好友申请 删除好友 更新好友 获取好友列表 Returns: Type Void Example nim.addFriend({ account: 'account', ps: 'ps', done: addFriendDone }); function addFriendDone(error, obj) { console.log('直接加为好友' + (!error?'成功':'失败'), error, obj); if (!error) { onAddFriend(obj.friend); } } addMsgPin(options, done) 新增PIN一条消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description msg Object 要PIN的消息对象 pinCustom String &lt;optional&gt; PIN的扩展字段 done function 结果回调函数，第一个参数是error，代表是否有错 addQuickComment(options, done) 增加一个快捷评论 不同于消息，评论只有几个简单的字段，可删除，不计入未读数 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description msg IMMessage 被回复的消息，至少要包含scene, from, to, idServer, idClient, time六个字段 body Number 评论的内容，只能是整数，开发者可自定义映射规则，如1点赞的表情、2对应鼓掌的表情等等 custom String &lt;optional&gt; 扩展字段，最大8字节 needPush Boolean &lt;optional&gt; false 是否需要推送 needBadge Boolean &lt;optional&gt; false 是否需要角标 pushTitle String &lt;optional&gt; 推送的标题 apnsText String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 第三方自定义的推送属性，限制json字符串，长度最大2048字节 done function 结果回调函数，第一个参数是error，第二个参数返回完整的评论内容和时间戳 addStickTopSession(options, done) 新增会话置顶 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description id String 要置顶的会话ID topCustom String &lt;optional&gt; 会话置顶的扩展字段 done function 结果回调函数，第一个参数是error，代表是否有错 addSuperTeamManagers(options) 添加群管理员 添加群管理员后, 所有群成员会收到一条类型为'addSuperTeamManagers'的群通知消息。此类群通知消息的from字段的值为添加群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被加为管理员的帐号列表, attach有一个字段members的值为被加为管理员的群成员列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 要添加的管理员帐号列表 done done 结果回调函数 See: 移除群管理员 Returns: Type Void Example nim.addSuperTeamManagers({ teamId: '123', accounts: ['a2', 'a3'], done: addSuperTeamManagersDone }); function addSuperTeamManagersDone(error, obj) { console.log('添加群管理员' + (!error?'成功':'失败'), error, obj); } addSuperTeamMembers(options) 添加群成员 当超大群被邀请模式是needVerify时，添加群成员后，被邀请的人会直接进群，此时所有超大群群成员会收到一条类型为'addSuperTeamMembers'的群通知消息。此类群通知消息的from字段的值为邀请者的帐号, to字段的值为对应的群ID；attach有一个字段team的值为对应的超大群对象，有一个字段members是被邀请新入群的成员信息数组。 当超大群被邀请模式是noVerify时，添加群成员后，被邀请的人会收到一条类型为'superTeamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的超大群, 被邀请的人可以选择接受入群邀请或者拒绝入群邀请。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 超大群ID accounts Array.&lt;String&gt; 邀请入群的账号列表 ps String &lt;optional&gt; 附言, 选填, 长度不能大于5000, 开发者也可以使用JSON格式的字符串来扩展此内容 done function 结果回调函数 Returns: Type Void Example nim.addSuperTeamMembers({ teamId: '123', accounts: ['a1', 'a1'], done: addSuperTeamMembersDone }) function addSuperTeamMembersDone(error, obj) { console.log('入群邀请发送' + (!error?'成功':'失败'), error, obj); } addTeamManagers(options) 添加群管理员 添加群管理员后, 所有群成员会收到一条类型为'addTeamManagers'的群通知消息。此类群通知消息的from字段的值为添加群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被加为管理员的帐号列表, attach有一个字段members的值为被加为管理员的群成员列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 要添加的管理员帐号列表 done done 结果回调函数 See: 移除群管理员 Returns: Type Void Example nim.addTeamManagers({ teamId: '123', accounts: ['a2', 'a3'], done: addTeamManagersDone }); function addTeamManagersDone(error, obj) { console.log('添加群管理员' + (!error?'成功':'失败'), error, obj); } addTeamMembers(options) 拉人入群 普通群, 拉人入群后, 所有群成员会收到一条类型为'addTeamMembers'的群通知消息。此类群通知消息的from字段的值为拉人的人的帐号,to字段的值为对应的群ID,attach有一个字段team的值为对应的[群对象](#群对象),attach有一个字段accounts的值为被拉的人的帐号列表,attach有一个字段members`的值为被拉的群成员列表。 被邀请的群成员在有人说话后才能看到该群, 而且会先收到一条类型为'addTeamMembers'的群通知消息, 然后会收到其它群消息。 高级群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id accounts Array.&lt;String&gt; 要拉进群的成员的帐号列表 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 custom String &lt;optional&gt; 自定义扩展字段，选填，最长512字符，开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 接受入群邀请 拒绝入群邀请 踢人出群 Returns: Type Void Example nim.addTeamMembers({ teamId: '123', accounts: ['a3', 'a4'], ps: '加入我们的群吧', custom: '', done: addTeamMembersDone }); function addTeamMembersDone(error, obj) { console.log('入群邀请发送' + (!error?'成功':'失败'), error, obj); } addToBlacklist(options) 加入黑名单 如果一个用户被加入了黑名单, 那么就不再会收到此用户发送的消息 SDK内部调用nim.markInBlacklist来完成实际工作 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要加入黑名单的账号 done done 结果回调函数 See: nim.markInBlacklist nim.removeFromBlacklist nim.getRelations Returns: Type Void Example nim.addToBlacklist({ account: 'account', done: addToBlacklistDone }); function addToBlacklistDone(error, obj) { console.log('加入黑名单' + (!error?'成功':'失败'), error, obj); if (!error) { addToBlacklist(obj); } } addToMutelist(options) 加入静音列表 SDK只负责维护静音列表, 具体要根据静音列表进行的操作由开发者决定 SDK内部调用nim.markInMutelist来完成实际工作 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要加入静音列表的账号 done done 结果回调函数 See: nim.markInMutelist nim.removeFromMutelist nim.getRelations Returns: Type Void Example nim.addToMutelist({ account: 'account', done: addToMutelistDone }); function addToMutelistDone(error, obj) { console.log('加入静音列表' + (!error?'成功':'失败'), error, obj); if (!error) { addToMutelist(obj); } } applyFriend(options) 申请加为好友 申请加某个用户为好友后, 对方会收到一条类型为'applyFriend'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请。 如果通过好友申请, 那么申请方会收到一条类型为'passFriendApply'的系统通知, 此类群通知消息的from字段的值为通过方的帐号, to字段的值为申请方的账号。 如果拒绝好友申请, 那么申请方会收到一条类型为'rejectFriendApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为申请方的账号。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 要申请加为好友的账号 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 直接加为好友 通过好友申请 拒绝好友申请 删除好友 更新好友 获取好友列表 Returns: Type Void Example nim.applyFriend({ account: 'account', ps: 'ps', done: applyFriendDone }); function applyFriendDone(error, obj) { console.log('申请加为好友' + (!error?'成功':'失败'), error, obj); } applySuperTeam(options) 申请入群 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applySuperTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passSuperTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectSuperTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id ps String &lt;optional&gt; 附言, 选填, 长度不能大于5000, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数, 成功时会收到群资料 See: 通过入群申请 拒绝入群申请 Returns: Type Void Example nim.applySuperTeam({ teamId: '123', ps: '请加', done: applySuperTeamDone }); function applySuperTeamDone(error, obj) { console.log('申请入群' + (!error?'成功':'失败'), error, obj); } applyTeam(options) 申请入群 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applyTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数, 成功时会收到群资料 See: 通过入群申请 拒绝入群申请 Returns: Type Void Example nim.applyTeam({ teamId: '123', ps: '请加', done: applyTeamDone }); function applyTeamDone(error, obj) { console.log('申请入群' + (!error?'成功':'失败'), error, obj); } audioToMp3(options) 将音频 url 转为 mp3 此方法会返回一个新的 url Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String url Returns: 转为 mp3 后的 url Type String Example var url = 'http://b12026.nos.netease.com/MTAxMTAxMA==/bmltYV8xMTQwMzFfMTQ1MTg4ODk5MjMxMV9mNmI1Y2QyZC03N2UzLTQxNmUtYWY5NC1iODlhZGY4ZTYzYWQ='; var mp3Url = nim.audioToMp3({ url: url }); console.log(mp3Url); audioToText(options) 音频转文字 仅支持通过previewFile或者sendFile拿到的音频 url, 或者收到的音频消息的 url Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 音频 url done function 结果回调函数, 成功时会额外附上文本 text Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ1MTg5MDI2MjY0MF9lYzk1MWMyZC1hMzRmLTQ1YzctYWI2ZS1kZWE2NTA2M2Q4NjY='; nim.audioToText({ url: url, done: audioToTextDone }); function audioToTextDone(error, obj) { console.log('语音转文字' + (!error?'成功':'失败'), error, obj); } blurImage(options, radius, sigma) 高斯模糊图片 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url radius Number 高斯模糊半径, 不包含中心点的像素, 取值范围 [1,50] sigma Number 高斯模糊标准差, 不能小于 0 options.done done 结果回调函数, 成功时附上高斯模糊后的图片 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var blurUrl = nim.blurImage({ url: url, radius: 5, sigma: 3, done: blurImageDone }); function blurImageDone(error, obj) { console.log('高斯模糊图片' + (!error?'成功':'失败'), error, obj); } clearServerHistoryMsgs(options) 删除单人会话服务器聊天记录 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 对方账号 delRoam Boolean 是否同时删除漫游，默认true done function 结果回调函数 Returns: Type Void Example nim.clearServerHistoryMsgs({ account: 'xxx', delRoam: false, done: clearServerHistoryMsgsDone }); function clearServerHistoryMsgsDone(error, obj) { console.log('删除服务器消息' + (!error?'成功':'失败'), error, obj); } connect() 登录 SDK See: disconnect Returns: Type Void Example nim.connect(); createTeam(options) 创建群 普通群不可以设置群加入方式 高级群的群加入方式默认为'needVerify' 高级群的群被邀请模式默认为'needVerify' 高级群的群邀请模式默认为'manager' 高级群的群信息修改权限默认为'manager' 高级群的群信息自定义字段修改权限默认为'manager' 普通群被邀请的群成员在有人说话之后才会看到该群, 而且会先收到一条类型为'addTeamMembers'的群通知消息, 然后会收到其它群消息。 高级群被邀请的群成员会收到一条类型为'teamInvite'的系统通知。 接受邀请后, 所有群成员会收到一条类型为'acceptTeamInvite'的群通知消息。 拒绝邀请后, 群主会收到一条类型为'rejectTeamInvite'的系统通知。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type String 群类型 name String 群名字 avatar String 群头像 accounts Array.&lt;String&gt; 要拉进群的成员的帐号列表 intro String &lt;optional&gt; 群简介 announcement String &lt;optional&gt; 群公告 joinMode String &lt;optional&gt; 群加入方式 beInviteMode String &lt;optional&gt; 群被邀请模式 inviteMode String &lt;optional&gt; 群邀请模式 updateTeamMode String &lt;optional&gt; 群信息修改权限 updateCustomMode String &lt;optional&gt; Team.updateCustomMode|群信息自定义字段修改权限} custom String &lt;optional&gt; 扩展字段 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数, 成功时会收到群资料 See: 拉人入群 踢人出群 更新群 Returns: Type Void Example // 创建普通群 nim.createTeam({ type: 'normal', name: '普通群', avatar: 'avatar', accounts: ['a1', 'a2'], ps: '我建了一个普通群', done: createTeamDone }); // 创建高级群 nim.createTeam({ type: 'advanced', name: '高级群', avatar: 'avatar', accounts: ['a1', 'a2'], intro: '群简介', announcement: '群公告', // joinMode: 'needVerify', // beInviteMode: 'needVerify', // inviteMode: 'manager', // updateTeamMode: 'manager', // updateCustomMode: 'manager', ps: '我建了一个高级群', done: createTeamDone }); function createTeamDone(error, obj) { console.log('创建' + obj.team.type + '群' + (!error?'成功':'失败'), error, obj); if (!error) { onCreateTeam(obj.team, obj.owner); } } cropImage(options) 裁剪图片 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url 从坐标 (x, y) 处截取尺寸为 width*height 的图片, (0, 0) 代表左上角 width/height 不能小于0, 如果 width/height 大于图片的原始宽度/高度, 那么将被替换为图片的原始宽度/高度 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url x Int 起点坐标 x, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height y Int 起点坐标 y, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height width Int 宽度, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height height Int 高度, 必须需为整数, 此方法内部使用 Math.round 来格式化 x/y/width/height done done 结果回调函数, 成功时附上裁剪后的图片的 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var cropUrl = nim.cropImage({ url: url, x: 100, y: 0, width: 250, height: 250, done: function cropImageDone }); function cropImageDone(error, obj) { console.log('裁剪图片' + (!error?'成功':'失败'), error, obj); } cutFriends(olds, invalids) 去除好友 此方法不会改变参数的值，而是会返回新的数组，包含去除后的好友列表 去除时按照 account 的值去除 此方法内部调用 NIM.util.cutObjArray 来完成实际工作if (!olds) {return olds;} if (!invalids) {return olds;} if (!NIM.util.isArray(invalids)) { invalids = [invalids]; } if (!invalids.length) {return olds;} var options = { keyPath: 'account' }; NIM.util.cutObjArray(olds, invalids, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除好友 Parameters: Name Type Description olds Array.&lt;Friend&gt; 原始好友数组 invalids Friend | Array.&lt;Friend&gt; 待去除的好友或好友数组 Returns: 去除后的好友数组 Type Array.&lt;Friend&gt; cutFriendsByAccounts(olds, invalids) 去除accounts对应的好友 此方法不会改变参数的值，而是会返回新的数组，包含去除后的好友列表 去除时按照 account 的值去除 此方法内部调用 nim.cutFriends 来完成实际工作if (!NIM.util.isArray(accounts)) { accounts = [accounts]; } var invalids = accounts.map(function(account) { return { account: account }; }); return nim.cutFriends(olds, invalids); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除好友 Parameters: Name Type Description olds Array.&lt;Friend&gt; 原始好友数组 invalids Friend | Array.&lt;Friend&gt; 待去除的好友或好友数组 Returns: 去除后的好友数组 Type Array.&lt;Friend&gt; cutLoginPorts(olds, invalids) 去除登录端 此方法不会改变参数的值，而是会返回新的数组，包含去除后的登录端列表 去除时按照 account 的值去除 此方法内部调用 NIM.util.cutObjArray 来完成实际工作if (!olds) {return olds;} if (!invalids) {return olds;} if (!NIM.util.isArray(invalids)) { invalids = [invalids]; } if (!invalids.length) {return olds;} var options = { keyPath: 'account' }; NIM.util.cutObjArray(olds, invalids, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除登录端 Parameters: Name Type Description olds Array.&lt;LoginPort&gt; 原始登录端数组 invalids LoginPort | Array.&lt;LoginPort&gt; 待去除的登录端或登录端数组 Returns: 去除后的登录端数组 Type Array.&lt;LoginPort&gt; cutRelations(olds, invalids) 去除关系 此方法不会改变参数的值，而是会返回新的数组，包含去除后的关系列表 去除时按照 account 的值去除 此方法内部调用 NIM.util.cutObjArray 来完成实际工作if (!olds) {return olds;} if (!invalids) {return olds;} if (!NIM.util.isArray(invalids)) { invalids = [invalids]; } if (!invalids.length) {return olds;} var options = { keyPath: 'account' }; NIM.util.cutObjArray(olds, invalids, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除关系 Parameters: Name Type Description olds Array.&lt;Relation&gt; 原始关系数组 invalids Relation | Array.&lt;Relation&gt; 待去除的关系或关系数组 Returns: 去除后的关系数组 Type Array.&lt;Relation&gt; cutTeamMembers(olds, invalids) 去除群成员 此方法不会改变参数的值，而是会返回新的数组，包含去除后的群成员列表 去除时按照 id 的值去除 此方法内部调用 NIM.util.cutObjArray 来完成实际工作if (!olds) {return olds;} if (!invalids) {return olds;} if (!NIM.util.isArray(invalids)) { invalids = [invalids]; } if (!invalids.length) {return olds;} var options = { }; NIM.util.cutObjArray(olds, invalids, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除群成员 Parameters: Name Type Description olds Array.&lt;TeamMember&gt; 原始群成员数组 invalids TeamMember | Array.&lt;TeamMember&gt; 待去除的群成员或群成员数组 Returns: 去除后的群成员数组 Type Array.&lt;TeamMember&gt; cutTeamMembersByAccounts(olds, invalids) 去除accounts对应的群成员 此方法不会改变参数的值，而是会返回新的数组，包含去除后的群成员列表 去除时按照 account 的值去除 此方法内部调用 nim.cutTeamMembers 来完成实际工作if (!NIM.util.isArray(accounts)) { accounts = [accounts]; } var invalids = TeamMember.assembleMembers({ teamId: teamId }, accounts); return nim.cutTeamMembers(olds, invalids); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除群成员 Parameters: Name Type Description olds Array.&lt;TeamMember&gt; 原始群成员数组 invalids TeamMember | Array.&lt;TeamMember&gt; 待去除的群成员或群成员数组 Returns: 去除后的群成员数组 Type Array.&lt;TeamMember&gt; cutTeams(olds, invalids) 去除群 此方法不会改变参数的值，而是会返回新的数组，包含去除后的群列表 去除时按照 teamId 的值去除 此方法内部调用 NIM.util.cutObjArray 来完成实际工作if (!olds) {return olds;} if (!invalids) {return olds;} if (!NIM.util.isArray(invalids)) { invalids = [invalids]; } if (!invalids.length) {return olds;} var options = { keyPath: 'teamId' }; NIM.util.cutObjArray(olds, invalids, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.cutObjArray 来去除群 Parameters: Name Type Description olds Array.&lt;Team&gt; 原始群数组 invalids Team | Array.&lt;Team&gt; 待去除的群或群数组 Returns: 去除后的群数组 Type Array.&lt;Team&gt; deleteAllLocalMsgs(options) 删除所有本地消息 如果不支持数据库, 算成功 此方法同时会清空所有的会话, 请开发者自己清空内存里面的会话列表 Parameters: Name Type Description options Object 配置参数 Returns: Type Void Example nim.deleteAllLocalMsgs({ done: deleteAllLocalMsgsDone }); function deleteAllLocalMsgsDone(error, obj) { console.log('删除所有本地消息' + (!error?'成功':'失败'), error, obj); } deleteAllLocalSysMsgs(options) 删除所有本地系统通知 如果不支持数据库, 算成功 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done function 结果回调函数 Returns: Type Void Example nim.deleteAllLocalSysMsgs({ done: deleteAllLocalSysMsgsDone }); function deleteAllLocalSysMsgsDone(error, obj) { console.log(error); console.log(obj); console.log('删除所有本地系统通知' + (!error?'成功':'失败')); } deleteCollects(options, done) 批量删除收藏 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description collectList Object 要删除的收藏列表，每个收藏对象至少要包含id、createTime两个字段；列表长度不能大于100 done function 结果回调函数，第一个参数是error，第二个参数有一个属性deleteNum，代表成功删除的个数 deleteFriend(options) 删除好友 删除好友后, 被删除的人会收到一条类型为'deleteFriend'的系统通知, 此类系统通知的from字段的值为删除方的帐号, to字段的值为被删除方的账号。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要删除好友的账号 delAlias Boolean 是否要删除好友的备注，默认false不删除 done done 结果回调函数 See: 直接加为好友 申请加为好友 通过好友申请 拒绝好友申请 更新好友 获取好友列表 Returns: Type Void Example nim.deleteFriend({ account: 'account', delAlias: true, done: deleteFriendDone }); function deleteFriendDone(error, obj) { console.log('删除好友' + (!error?'成功':'失败'), error, obj); if (!error) { onDeleteFriend(obj.account); } } deleteLocalMsg(options) 删除本地消息 在支持数据库时 如果删除的是对应会话的最后一条消息, 那么对应会话的 lastMsg 属性会自动变为变为上一条消息, 同时触发 onupdatesession 回调 如果对应的消息不存在, 算成功 如果不支持数据库, 算成功 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description msg IMMessage 待删除的消息 done function 结果回调函数 Returns: Type Void Example nim.deleteLocalMsg({ msg: msg, done: deleteLocalMsgDone }); function deleteLocalMsgDone(error, obj) { console.log('删除本地消息' + (!error?'成功':'失败'), error, obj); } deleteLocalMsgs(options) 根据会话ID、起始时间等条件删除本地消息 如果不支持数据库, 算成功 结束时间大于开始时间 如不传开始时间和结束时间，则删除某个会话的所有本地消息 相当于删除某个会话的本地消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description sessionId String 会话ID start Number &lt;optional&gt; 开始时间，毫秒时间戳，默认为负无穷大 end Number &lt;optional&gt; 结束时间，毫秒时间戳，默认为无穷大 updateSession Boolean &lt;optional&gt; true 是否同步更新会话。为true，在删除完消息后SDK会检查是否更新对应会话中的lastMsg；为false，则SDK仅删除本地消息，不更新会话。若开发者确定没有删除最后一定消息，建议传false，减少不必要的检测和更新 done function 结果回调函数 Returns: Type Void Example nim.deleteLocalMsgs({ sessionId: 'p2p-xx', start: 1561355358000, end: 1561355458000, done: deleteLocalMsgsDone }); function deleteLocalMsgs(error, obj) { console.log('删除会话本地消息' + (!error?'成功':'失败'), error, obj); } deleteLocalMsgsBySession(options) 删除某个会话的本地消息 如果不支持数据库, 算成功 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String 聊天对象, 账号或者群id delLastMsg Boolean &lt;optional&gt; false 是否同时删除本地会话对象中的的lastMsg isTag Boolean &lt;optional&gt; false 是否为标记删除，若为true，则SDK会记录本地清空会话的时间戳，再调用获取历史消息或获取包含关键词的历史消息接口时，便不能再获取到该时间戳之前的消息了 done function 结果回调函数 Returns: Type Void Example nim.deleteLocalMsgsBySession({ scene: 'p2p', to: 'account', delLastMsg: true, done: deleteLocalMsgsBySessionDone }); function deleteLocalMsgsBySession(error, obj) { console.log('删除会话本地消息' + (!error?'成功':'失败'), error, obj); } deleteLocalSession(options) 删除本地会话 在支持数据库时, 删了本地会话之后, 下次同步就同步不到对应的会话 如果不支持数据库, 算成功 如果对应的会话不存在, 算成功 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description id String | Array.&lt;String&gt; 会话 id 或 id 数组 done function 结果回调函数 Returns: Type Void Example nim.deleteLocalSession({ id: 'p2p-account', done: deleteLocalSessionDone }); function deleteLocalSessionDone(error, obj) { console.log('删除本地会话' + (!error?'成功':'失败'), error, obj); } deleteLocalSysMsg(options) 删除本地系统通知 删除 idServer 对应的本地系统通知 如果不支持数据库, 算成功 如果对应的系统通知不存在, 算成功 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idServer String | Array.&lt;String&gt; idServer 或 idServer 数组 done function 结果回调函数 Returns: Type Void Example nim.deleteLocalSysMsg({ idServer: '1234', done: deleteLocalSysMsgDone }); function deleteLocalSysMsgDone(error, obj) { console.log(error); console.log(obj); console.log('删除本地系统通知' + (!error?'成功':'失败')); } deleteLocalTeam(options) 删除 teamId 对应的本地群 如果不支持数据库, 算成功 如果当前用户还在群里面, 那么会失败 如果对应的群不存在, 算成功 如果传了多个 teamId, 但是当前用户还在某个群里面, 那么会失败, 但是所有用户不在的群都会被删掉 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String | Array.&lt;String&gt; teamId 或者 teamId 数组 done function 结果回调函数 Returns: Type Void Example nim.deleteLocalTeam({ teamId: '1234', done: deleteLocalTeamDone }); function deleteLocalTeamDone(error, obj) { console.log('删除本地群' + (!error?'成功':'失败')); console.log(error); console.log(obj); } deleteMsg(options) 撤回消息 撤回消息后, 消息接收方会收到一条类型为'deleteMsg'的系统通知, 此类系统通知的 msg 为被删除的消息的部分字段。如果是群消息, 那么群里的所有人都会收到这条系统通知. 如果同时在多个端登录了同一个账号, 那么其它端也会收到这条系统通知. Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description msg IMMessage 待撤回的消息 apnsText String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 第三方自定义的推送属性，限制json字符串，长度最大2048 ps String &lt;optional&gt; 附言 done function 结果回调函数 Returns: Type Void Example nim.deleteMsg({ msg: someMsg, done: deleteMsgDone }) console.log('正在撤回消息', someMsg) function deleteMsgDone (error) { console.log('撤回消息' + (!error?'成功':'失败'), error); } deleteMsgPin(options, done) 取消PIN一条消息，即unPin Parameters: Name Type Description options Object 配置参数 Properties Name Type Description msg Object 要PIN的消息对象 done function 结果回调函数，第一个参数是error，代表是否有错 deleteMsgSelf(options) 单向删除消息 不同与直接删除消息，单向删除消息后，自己看不到删除的消息，但对方仍能看到，也就是仅删除自己这侧的消息 如果存在多端登录，其他端会收到一个单向删除的系统通知 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description msg IMMessage 待删除的消息 custom Object &lt;optional&gt; 扩展字段 done Object 结果回调函数，第一个参数是error，若为null，则说明删除成功 deleteNosAccessToken(options) 删除NOS安全下载token 参见获取NOS安全下载token Parameters: Name Type Description options Object 配置参数 Properties Name Type Description token Object 需要删除的token done Object 结果回调函数 deleteQuickComment(options, done) 删除一个快捷评论 不同于消息，评论只有几个简单的字段，可删除，不计入未读数 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description msg IMMessage 被回复的消息，至少要包含scene, from, to, idServer, idClient, time六个字段 body Number 评论的内容，只能是整数，开发者可自定义映射规则，如1点赞的表情、2对应鼓掌的表情等等 custom String &lt;optional&gt; 扩展字段 needPush Boolean &lt;optional&gt; false 是否需要推送 needBadge Boolean &lt;optional&gt; false 是否需要角标 pushTitle String &lt;optional&gt; 推送的标题 apnsText String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 第三方自定义的推送属性，限制json字符串，长度最大2048 done function 结果回调函数，第一个参数是error，第二个参数返回完整的评论内容和时间戳 deleteServerSessions(options) 删除服务器上会话列表中的一些会话 删除后不可恢复，其他端也不能再拉取到，直至会话重新被产生 删除漫游消息产生的会话请使用删除会话或批量删除会话 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description sessions Array 会话数组，数组项是一个对象，对象必须要包含scene、to两个属性 session.scene String 会话场景 session.to String 对方账号或群ID Example nim.deleteServerSessions({ sessions: [{ scene: 'p2p', to: 'account' }, { scene: 'p2p', to: 'account1' }], done: function (error, obj) { console.log('删除会话' + (!error?'成功':'失败'), error, obj); } }); deleteSession(options) 删除服务器上的漫游会话 删了后, 在不支持数据库时, 下次同步就同步不到对应的会话以及会话对应的漫游消息; 此外, 在新设备上也同步不到对应的会话以及会话对应的漫游消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description scene String 场景 to String 对方账号或群ID done done 结果回调函数 See: 批量删除服务器上的会话 Returns: Type Void Example nim.deleteSession({ scene: 'p2p', to: 'account', done: deleteSessionDone }); function deleteSessionDone(error, obj) { console.log('删除会话' + (!error?'成功':'失败'), error, obj); } deleteSessions(options) 批量删除服务器上的漫游会话 删了服务器上的漫游会话之后, 在不支持数据库时, 下次同步就同步不到对应的会话以及会话对应的漫游消息; 此外, 在新设备上也同步不到对应的会话以及会话对应的漫游消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description sessions Array.&lt;Session&gt; 会话列表 done done 结果回调函数 See: 删除会话 Returns: Type Void Example nim.deleteSessions({ sessions: [{ scene: 'p2p', to: 'account' }, { scene: 'p2p', to: 'account1' }], done: deleteSessionsDone }); function deleteSessionsDone(error, obj) { console.log('批量删除会话' + (!error?'成功':'失败'), error, obj); } deleteSessionsWithMoreRoaming(options) 根据id删除漫游消息不全的会话 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description id String 要删除的会话id done function deleteStickTopSession(options, done) 取消会话置顶 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description id String 取消置顶的会话ID done function 结果回调函数，第一个参数是error，代表是否有错 disconnect() 断开连接（包含登出logout） See: connect Returns: Type Void Example nim.disconnect(); dismissTeam(options) 解散群 解散群后, 所有群成员会收到一条类型为'dismissTeam'的群通知消息。此类群通知消息的from字段为解散群的人的帐号, to字段的值为被对应的群ID。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数 Returns: Type Void Example nim.dismissTeam({ teamId: '123', done: dismissTeamDone }); function dismissTeamDone(error, obj) { console.log('解散群' + (!error?'成功':'失败'), error, obj); } findFriend(friends, account) 在好友数组里面根据 account 找到对应的好友 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(friends, { keyPath: 'account', value: account }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个好友 Parameters: Name Type Description friends Array.&lt;Friend&gt; 好友数组 account String 待查找的好友的 account Returns: 对应的好友或者 null Type Friend | null findMsg(msgs, idClient) 在消息数组里面根据 idClient 找到对应的消息 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(msgs, { keyPath: 'idClient', value: idClient }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个消息 Parameters: Name Type Description msgs Array.&lt;Message&gt; 消息数组 idClient String 待查找的消息的 idClient Returns: 对应的消息或者 null Type Message | null findRelation(relations, account) 在关系数组里面根据 account 找到对应的关系 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(relations, { keyPath: 'account', value: account }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个关系 Parameters: Name Type Description relations Array.&lt;Relation&gt; 关系数组 account String 待查找的关系的 account Returns: 对应的关系或者 null Type Relation | null findSession(sessions, sessionId) 在会话数组里面根据 id 找到对应的会话 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(sessions, { keyPath: 'id', value: sessionId }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个会话 Parameters: Name Type Description sessions Array.&lt;Session&gt; 会话数组 sessionId String 待查找的会话的 id Returns: 对应的会话或者 null Type Session | null findSysMsg(sysMsgs, idServer) 在系统通知数组里面根据 idServer 找到对应的系统通知 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(sysMsgs, { keyPath: 'idServer', value: idServer }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个系统通知 Parameters: Name Type Description sysMsgs Array.&lt;SystemMessage&gt; 系统通知数组 idServer String 待查找的系统通知的 idServer Returns: 对应的系统通知或者 null Type SystemMessage | null findTeam(teams, teamId) 在群数组里面根据 teamId 找到对应的群 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(teams, { keyPath: 'teamId', value: teamId }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个群 Parameters: Name Type Description teams Array.&lt;Team&gt; 群数组 teamId String 待查找的群的 teamId Returns: 对应的群或者 null Type Team | null findTeamMember(members, id) 在群成员数组里面根据 id 找到对应的群成员 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(members, { keyPath: 'id', value: id }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个群成员 Parameters: Name Type Description members Array.&lt;TeamMember&gt; 群成员数组 id String 待查找的群成员的 id Returns: 对应的群成员或者 null Type TeamMember | null findUser(users, account) 在名片数组里面根据 account 找到对应的名片 此方法内部调用 NIM.util.findObjInArray 来完成实际工作NIM.util.findObjInArray(users, { keyPath: 'account', value: account }); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.findObjInArray 来查找某个名片 Parameters: Name Type Description users Array.&lt;User&gt; 名片数组 account String 待查找的名片的 account Returns: 对应的名片或者 null Type User | null forwardMsg(options) 转发消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description msg IMMessage 待转发的消息 scene String 新的场景 to String 新的接收方, 对方帐号或者群id done function 结果回调函数 Returns: Type Void Example nim.forwardMsg({ msg: someMsg, scene: 'p2p', to: 'account', done: sendMsgDone }) console.log('正在转发消息', someMsg) getAllSuperTeamMembers(options) 获取超大群成员。群成员信息体积太大时，会分多次返回，即options.done会被调用多次，回调函数的第二个参数有一个isAll属性，用来标示是否返回完毕 接受入群邀请之后可调用此方法来获取超大群群成员列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数, 成功时会额外附上群成员列表 See: 获取超大群资料 获取我的超大群资料列表 Returns: Type Void Example nim.getAllSuperTeamMembers({ teamId: '123', done: getAllSuperTeamMembersDone }); function getAllSuperTeamMembersDone(error, obj) { console.log(error); console.log('获取群成员' + (!error?'成功':'失败')); console.log('群成员', obj.members) } getChatroomAddress(options) 获取聊天室服务器地址 可以在 IM 连接上获取聊天室服务器地址 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description chatroomId String &lt;optional&gt; 聊天室 id Returns: Type Void Example nim.getChatroomAddress({ chatroomId: 'chatroomId', done: getChatroomAddressDone }); function getChatroomAddressDone(error, obj) { console.log('获取聊天室地址' + (!error?'成功':'失败'), error, obj); } getClientAntispamLexicon() 获取反垃圾词库 开发者可以通过此接口获取反垃圾的词库 通过回调参数，开发者可以检查词库是否合规 回调函数第一个参数为该接口是否有错，第二个参数为词库对象，词库加载后会自动保存在内存中，开发者可以手动传入或者直接使用 Returns: 反垃圾词库文件file包含 version 词库版本 md5 词库文件的md5 nosurl 词库文件的下载地址 thesaurus 词库内容 Type Void Example nim.getClientAntispamLexicon({ done: function(error, file) { console.log(error, file) } }); getCollects(options) 查询收藏列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description type Number &lt;optional&gt; 要查询的收藏类型，缺省表示所有类型 beginTime Number &lt;optional&gt; 时间戳, 开始时间, 精确到ms, 默认为0 endTime Number &lt;optional&gt; 时间戳, 结束时间, 精确到ms, 默认为服务器的最新时间 lastId String &lt;optional&gt; 上次查询的最后一条收藏的id, 第一次可不填 limit Number &lt;optional&gt; 100 本次查询的消息数量限制, 最多100条, 默认100条 reverse Boolean &lt;optional&gt; false 默认false表示从endTime开始往前查找历史消息，true表示从beginTime开始往后查找历史消息 done function 结果回调函数，其第二个参数有两个属性collectList和total，分别是查到的收藏列表和总数 Returns: Type Void getFriends(options) 获取好友列表 如果开发者在初始化SDK的时候设置了syncFriends为false, 那么就收不到onfriends回调, 可以调用此接口来获取好友列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done done 结果回调函数, 成功的时候会收到好友列表 See: 直接加为好友 申请加为好友 通过好友申请 拒绝好友申请 删除好友 更新好友 Returns: Type Void Example nim.getFriends({ done: getFriendsDone }); function getFriendsDone(error, friends) { console.log('获取好友列表' + (!error?'成功':'失败'), error, friends); if (!error) { onFriends(friends); } } getHistoryMsgs(options) 获取云端历史记录 该接口用于获取一段时间内的历史消息, 由参数beginTime和endTime来控制时间范围。 当reverse为false时, 后续查询的endTime对应上次查询的最后一条消息的time字段 当reverse为true时, 后续查询的beginTime对应上次查询的最后一条消息的time字段 如果要搜索历史消息, 请参考获取包含关键词的历史消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 请参考消息场景 to String 聊天对象, 账号或者群id beginTime Number &lt;optional&gt; 时间戳, 开始时间, 精确到ms, 默认为0 endTime Number &lt;optional&gt; 时间戳, 结束时间, 精确到ms, 默认为服务器的当前时间 lastMsgId String &lt;optional&gt; 上次查询的最后一条消息的idServer, 第一次不填 limit Number &lt;optional&gt; 本次查询的消息数量限制, 最多100条, 默认100条 reverse Boolean &lt;optional&gt; false 默认false表示从endTime开始往前查找历史消息; true表示从beginTime开始往后查找历史消息 asc Boolean &lt;optional&gt; false 默认false表示返回的消息按时间逆序排序; true表示按时间正序排序 msgTypes StringArray &lt;optional&gt; ['text', 'image', ...] 消息类型列表，默认全部消息类型 done done 结果回调函数, 成功时会额外附上消息列表 Returns: Type Void Example nim.getHistoryMsgs({ scene: 'p2p', to: 'account', done: getHistoryMsgsDone }); function getHistoryMsgsDone(error, obj) { console.log('获取云端历史记录' + (!error?'成功':'失败'), error, obj); if (!error) { console.log(obj.msgs); } } getLocalMsgByIdClient(options) 获取 idClient 对应的本地消息 如果不支持数据库, 算成功, 返回 null Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idClient String idClient done function 结果回调函数, 成功时会额外附上消息 Returns: Type Void Example nim.getLocalMsgByIdClient({ idClient: 'd7a1b2c63066e1038e9aa01321652370', done: getLocalMsgByIdClientDone }); function getLocalMsgByIdClientDone(error, obj) { console.log('获取本地消息' + (!error?'成功':'失败'), error, obj); if (!error) { console.log(obj.msg); } } getLocalMsgs(options) 获取本地历史记录 如果不支持数据库, 算成功, 返回空数组 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description sessionId String &lt;optional&gt; 如果提供该参数, 那么查询该会话的消息 start Number &lt;optional&gt; 0 开始时间 end Number &lt;optional&gt; Infinity 结束时间 desc Boolean &lt;optional&gt; true true 表示从 end 开始查, false 表示从 begin 开始查 limit Number &lt;optional&gt; 100 limit 数量限制 type String &lt;optional&gt; 消息类型, [indexedDB专用]如果提供该参数, 那么查询该类型的消息 types Array.&lt;String&gt; &lt;optional&gt; [indexedDB专用]如果提供该参数, 那么查询这几种类型的消息 keyword String &lt;optional&gt; [indexedDB专用]如果提供参数, 那么查询匹配该关键词的消息 filterFunc function &lt;optional&gt; [indexedDB专用]可选参数, 过滤函数, 接收消息对象, 返回 true 表示结果保留该消息 done done 结果回调函数, 成功时会附上消息列表 Returns: Type Void Example nim.getLocalMsgs({ sessionId: 'p2p-account' limit: 100, done: getLocalMsgsDone }) function getLocalMsgsDone(error, obj) { console.log('获取本地消息' + (!error?'成功':'失败'), error, obj) } getLocalMsgsByIdClients(options) 获取 idClients 对应的本地消息 如果不支持数据库, 算成功, 返回空数组 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idClients Array.&lt;String&gt; idClients done function 结果回调函数, 成功时会额外附上消息列表 Returns: Type Void Example nim.getLocalMsgsByIdClients({ idClients: [ 'd7a1b2c63066e1038e9aa01321652370', '22e604c7811c23586355f63f24658525' ], done: getLocalMsgsByIdClientsDone }); function getLocalMsgsByIdClientsDone(error, obj) { console.log('获取本地消息' + (!error?'成功':'失败'), error, obj); if (!error) { console.log(obj.msgs); } } getLocalSession(options) 通过sessionId获取本地会话 如果支持数据库, 则查找数据库中的对应会话，有则返回会话对象，无则返回 null 如果不支持数据库, 则查找之前同步到的会话列表，有则返回会话对象，无则返回 null Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description sessionId String &lt;optional&gt; 需要查询的会话的sessionId done done 结果回调函数 Returns: Type Void Example nim.getLocalSession({ sessionId: sessionId, done: getLocalSessionDone }); function getLocalSessionDone(error, obj) { console.log('获取本地会话操作' + (!error ? '完成' : '失败'), error, obj) if (!error) { onSession(obj); } } getLocalSessions(options) 获取本地会话列表 如果不支持数据库, 返回空数组 会话列表按时间逆序排列, 即最近聊过天的放在列表的最前面 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description lastSessionId Number &lt;optional&gt; 上次查询的最后一条会话的id, 第一次不填 limit Number &lt;optional&gt; 本次查询的会话数量限制, 最多 100 条, 默认 100 条 reverse Boolean &lt;optional&gt; false 默认false表示从最近的会话开始往前查找本地会话； true表示从第一条会话开始往后查找本地会话 done done 结果回调函数 Returns: Type Void Example nim.getLocalSessions({ lastSessionId: lastSessionId, limit: 100, done: getLocalSessionsDone }); function getLocalSessionsDone(error, obj) { console.log('获取本地会话列表' + (!error?'成功':'失败'), error, obj); if (!error) { onSessions(obj.sessions); } } getLocalSessionsByMsgType(options) 获取本地会话列表，开发者可以指定排除lastMsg的类型，比如获取每个会话中非通知类型的消息 如果不支持数据库, 返回空数组 会话列表按时间逆序排列, 即最近聊过天的放在列表的最前面 与getLocalSessions不同的是，该接口可以排除或指定lastMsg的类型，如当 excludeType='notification' 时，返回的session列表是包含非通知类型消息的会话，该会话的lastMsg为最后一条非通知消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description exclude String | Array &lt;optional&gt; lastMsg要排除的类型，具体参见消息类型，如不填，表示lastMsg不排除任何类型 done done 结果回调函数 Returns: Type Void Example nim.getLocalSessionsByMsgType({ exclude: 'notification', // exclude: ['notification', 'image'], done: getLocalSessionsByMsgTypeDone }); function getLocalSessionsByMsgTypeDone(error, obj) { console.log('获取会话列表' + (!error?'成功':'失败'), error, obj); if (!error) { onSessions(obj.sessions); } } getLocalSysMsgs(options) 获取本地系统通知 如果不支持数据库, 算成功, 返回空数组 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description category String &lt;optional&gt; 种类 type String &lt;optional&gt; 类型 read Boolean &lt;optional&gt; 可选 如果不传, 默认获取所有已读和未读的系统通知 如果传 true, 那么只获取已读的系统通知 如果传 false, 那么只获取未读的系统通知 lastIdServer String &lt;optional&gt; 上次查询的最后一条系统通知的idServer, 第一次不填 limit Number &lt;optional&gt; 本次查询的消息数量限制, 最多 100 条, 默认 100 条 reverse Boolean &lt;optional&gt; false 默认false表示从最近的系统通知开始往前查找本地系统通知； true表示从第一条系统通知开始往后查找本地系统通知 done done 结果回调函数, 成功时会额外附上系统通知列表 Returns: Type Void Example nim.getLocalSysMsgs({ lastIdServer: 'lastIdServer', limit: 100, done: getLocalSysMsgsDone }); function getLocalSysMsgsDone(error, obj) { console.log(error); console.log(obj); console.log('获取本地系统通知' + (!error?'成功':'失败')); if (!error) { console.log(obj.sysMsgs); } } getLocalTeams(options) 获取teamIds对应的本地群 如果不支持数据库, 算成功 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamIds Array.&lt;String&gt; teamId 数组 done function 结果回调函数, 成功时会额外附上群列表 Returns: Type Void Example nim.getLocalTeams({ teamIds: teamIds done: getLocalTeamsDone }); function getLocalTeamsDone(error, obj) { console.log('获取本地群' + (!error?'成功':'失败')); console.log(error); console.log(obj); } getMsgPins(options, done) 获取会话的PIN消息列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description id Object 会话ID done function 结果回调函数，第一个参数是error，代表是否有错；第二个参数是返回的PIN消息列表 getMsgsByIdServer(options, done) 根据idServer批量查询服务器消息 主要用于Thread消息场景 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description reqMsgs ObjectArray 数组的每个元素都是一个对象，包含scene, from, to, idServer, time五个字段，数组长度最大为100 done function 结果回调函数，第一个参数是error，第二个参数返回的具体消息列表 getMutedTeamMembers(options) 获取群禁言成员列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId Array.&lt;String&gt; 群 ID Returns: Type Void Example nim.getMutedTeamMembers({ teamId: 'teamId', done: getMutedTeamMembersDone }) function getMutedTeamMembersDone (error, obj) { console.log('获取群禁言成员列表' + (!error?'成功':'失败')); } getNosAccessToken(options) 获取NOS安全下载token 在上传文件时，若设置参数nosScenes为nim_security_开头的字符串，则需要调用该接口获取token后才能下载文件。nosScenes可在初始化时全局配置，也可在发送、预览某文件时单独设置 下载文件后请及时删除token，避免token泄漏 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description url Object 文件url userAgent Object &lt;optional&gt; 用户user agent ext Object &lt;optional&gt; 扩展字段 done Object 结果回调函数。第一个参数是错误信息，第二个参数是结果对象，它有token和resUrl两个属性，分别是文件token和带有token的最终url（可以用该url直接下载文件） getPushNotificationMultiportConfig() 获取当前多端推送配置选项 Returns: 多端推送配置选项 Type PushNotificationMultiportConfig getQuickComments(options, done) 查询消息的快捷评论列表 可批量，即同时查询多个消息的评论列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description msgs IMMessageArray 被回复的消息，至少要包含scene, from, to, idServer, idClient, time六个字段 done function 结果回调函数，第一个参数是error，第二个参数返回完整的评论内容和时间戳 getRelations(options) 获取黑名单和静音列表 如果开发者在初始化SDK的时候设置了syncRelations为false, 那么就收不到onblacklist和onmutelist回调, 可以调用此接口来获取黑名单和静音列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done done 结果回调函数, 成功时会返回黑名单和静音列表 See: nim.addToBlacklist nim.removeFromBlacklist nim.markInBlacklist nim.addToMutelist nim.removeFromMutelist nim.markInMutelist Returns: Type Void Example nim.getRelations({ done: getRelationsDone }); function getRelationsDone(error, obj) { console.log('获取静音列表' + (!error?'成功':'失败'), error, obj); if (!error) { onBlacklist(obj.blacklist); onMutelist(obj.mutelist); } } getServerSession(options) 获取服务器上的某个会话 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description scene String 会话场景 to String 对方账号或群ID Example nim.getServerSession({ scene: 'p2p', to: 'account', done: function (obj) { console.log('获取会话' + (!error?'成功':'失败'), error, obj); } }); getServerSessions(options) 获取服务器会话列表 与漫游消息构成的会话列表不同，该列表记录的会话数量更多，超过了漫游列表100条的限制，但列表中的会话没有未读数 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description minTimestamp Number &lt;optional&gt; 0 最小的时间戳。0表示之前从未请求过。如果之前拉取过会话，可以填写上次的时间戳，拉取自上次之后更新的会话 maxTimestamp Number &lt;optional&gt; 最大的时间戳。默认是当前时间，表示拉取最新的会话。拉取第一页之后的会话时，填写上一页最后一条会话的更新时间 needLastMsg Boolean &lt;optional&gt; true 是否需要lastMsg limit Number &lt;optional&gt; 100 返回的最大条数，最大100，剩余的可分页获取 Example nim.getServerSessions({ minTimestamp: 1571039417853, // 获取 1571039417853 时间之后更新的会话，增量获取 maxTimestamp: 1571039418800, // 非第一页，上一页会话列表最小的时间时1571039418800 done: function (error, obj) { console.log('获取会话列表' + (!error?'成功':'失败'), error, obj); } }); getServerTime(options) 获取服务器时间戳（毫秒） Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done function 结果回调函数 Returns: Type Void Example nim.getServerTime({ done: getServerTimeDone }); function getServerTimeDone(error, time) { console.log('获取服务器时间' + (!error?'成功':'失败'), error, time); } getSessionsWithMoreRoaming(options) 查询漫游消息不全的会话/会话列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description id String &lt;optional&gt; 要查询的会话id，若不填，则查询全部 done function getStickTopSessions(options, done) 获取置顶会话列表 Parameters: Name Type Description options Object 配置参数 done function 结果回调函数，第一个参数是error，代表是否有错 getSuperTeam(options) 获取群信息 开发者可以调用此接口根据群ID获取群资料 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数, 成功时会收到超大群资料 See: 获取群列表 获取群成员 Returns: Type Void Example nim.getSuperTeam({ teamId: '123', done: getSuperTeamDone }); function getSuperTeamDone(error, obj) { console.log(error); console.log(obj); console.log('获取群' + (!error?'成功':'失败')); } getSuperTeamMembersByJoinTime(options) 根据进群时间，分页获取超大群成员 接受入群邀请之后可调用此方法来分页获取超大群群成员列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description teamId String 群id joinTime Boolean &lt;optional&gt; 0 获取在该时间以后进群的群成员 limit Object &lt;optional&gt; 100 本次获取的群成员数量 reverse Boolean &lt;optional&gt; false false - 获取joinTime之后进群的群成员，按时间正序排列 true - 获取joinTime之前进群的群成员，按时间逆序排列 done done 结果回调函数, 成功时会额外附上群成员列表和分页数据（如果有的话） See: 获取超大群资料 获取我的超大群资料列表 Returns: Type Void Example nim.getSuperTeamMembersByJoinTime({ teamId: '123', joinTime: 0, limit: 100, done: onMembers(err, arr) }); function onMembers (error, arr) { console.log(error); console.log('获取群成员' + (!error?'成功':'失败')); console.log('群成员:', arr) var lastmembers = arr &amp;&amp; arr[arr.length - 1] if (lastmembers) { // 继续获取下一页 nim.getSuperTeamMembersByJoinTime({ teamId: '123', joinTime: 0, limit: 200, done: onMembers(err, arr) }) } } getSuperTeams(options) 获取所在的超大群列表 如果开发者在初始化SDK的时候设置了syncSuperTeams为false, 那么就收不到onSuperTeams回调, 可以调用此接口来获取超大群列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done done 结果回调函数, 成功时会收到超大群列表 See: 获取超大群资料 获取超大群成员 Returns: Type Void Example nim.getSuperTeams({ done: getSuperTeamsDone }); function getSuperTeamsDone(error, teams) { console.log(error); console.log(teams); console.log('获取超大群列表' + (!error?'成功':'失败')); } getTeam(options) 获取群 开发者可以调用此接口获取群资料 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数, 成功时会收到群资料 See: 获取群列表 获取群成员 Returns: Type Void Example nim.getTeam({ teamId: '123', done: getTeamDone }); function getTeamDone(error, obj) { console.log(error); console.log(obj); console.log('获取群' + (!error?'成功':'失败')); } getTeamMemberByTeamIdAndAccount(options) 通过群ID及成员账号获取群成员信息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id account String 群成员账号 done done 结果回调函数, 成功时会额外附上群成员列表 See: 获取群资料 获取群列表 获取群成员列表 Returns: Type Void Example nim.getTeamMemberByTeamIdAndAccount({ teamId: '123', account: 'abc', done: getTeamMemberDone }); function getTeamMemberDone(error, obj) { console.log(error); console.log(obj); console.log('获取群成员' + (!error?'成功':'失败')); if (!error) { onTeamMember(obj); } } getTeamMemberInvitorAccid(options) 获取群成员的邀请者accid Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 表示需要查询邀请者accid的群成员账号列表，一次最多查200个。当群成员数量小于等于200时为可选参数，不填默认查全部成员；群成员数量大于200时，需要将成员列表分批多次调用此接口查询。 done done 结果回调函数，返回数据类型为Object，key/value分别是群成员accid/邀请者accid See: 获取群列表 获取群成员列表 Returns: Type Void Example nim.getTeamMemberInvitorAccid({ teamId: '123', account: ['abc'], done: getTeamMemberInvitorAccidDone }); function getTeamMemberInvitorAccidDone(error, obj) { console.log(error); console.log(obj); console.log('获取群成员邀请者' + (!error?'成功':'失败')); } getTeamMembers(options) 获取群成员 如果开发者在初始化SDK时选择设置了syncTeamMembers为false, 那么就收不到onteammembers回调, 可以调用此方法来获取群成员列表 接受入群邀请之后调用此方法来获取群成员列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数, 成功时会额外附上群成员列表 See: 获取群资料 获取群列表 Returns: Type Void Example nim.getTeamMembers({ teamId: '123', done: getTeamMembersDone }); function getTeamMembersDone(error, obj) { console.log(error); console.log(obj); console.log('获取群成员' + (!error?'成功':'失败')); if (!error) { onTeamMembers(obj); } } getTeamMsgReadAccounts(options) 查询群组已读、未读账号列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamMsgReceipt Array.&lt;Object&gt; 已读消息对象 Properties Name Type Description teamId String 群序号 idServer String 消息编号 Returns: Type Void Example nim.getTeamMsgReadAccounts({ teamMsgReceipt: { teamId: '1027484', idServer: '68953284018302' }, done: getTeamMsgReadAccountsDone }) function getTeamMsgReadAccountsDone (error, obj) { console.log('查询群组已读、未读账号列表' + (!error?'成功':'失败')); } getTeamMsgReads(options) 查询群组消息已读、未读数量 对应于群组消息发送时配置了needMsgReceipt字段的群组消息，接收方可以对消息发送已读回执 done 回调的第二个参数是发送的参数，用于校验，第三个参数才是实际的结果 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamMsgReceipts Array.&lt;Object&gt; 已读消息对象 teamMsgReceipt.teamId String 群序号 teamMsgReceipt.idServer String 消息编号 Returns: Type Void Example nim.getTeamMsgReads({ teamMsgReceipts: [{ teamId: '1027484', idServer: '68953284018302' }], done: getTeamMsgReadsDone }) function getTeamMsgReadsDone (error, params, result) { console.log('查询群组消息已读、未读数量' + (!error?'成功':'失败')); } getTeams(options) 获取群列表 如果开发者在初始化SDK的时候设置了syncTeams为false, 那么就收不到onteams回调, 可以调用此接口来获取群列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description done done 结果回调函数, 成功时会收到群列表 See: 获取群资料 获取群成员 Returns: Type Void Example nim.getTeams({ done: getTeamsDone }); function getTeamsDone(error, teams) { console.log(error); console.log(teams); console.log('获取群列表' + (!error?'成功':'失败')); } getThreadMsgs(options) 获取某thread的消息列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 对方账号 threadMsgFromAccount String thread根消息的from，即发送者账号 threadMsgToAccount String thread根消息的to，即接受者账号 threadMsgIdServer String thread根消息的idServer threadMsgTime Number thread根消息的time beginTime Number &lt;optional&gt; 时间戳, 开始时间, 精确到ms, 默认为0 endTime Number &lt;optional&gt; 时间戳, 结束时间, 精确到ms, 默认为服务器的当前时间 lastMsgId String &lt;optional&gt; 上次查询的最后一条消息的idServer, 第一次不填 limit Number &lt;optional&gt; 100 本次查询的消息数量限制, 最多100条, 默认100条 reverse Boolean &lt;optional&gt; false 默认false表示从endTime开始往前查找历史消息，true表示从beginTime开始往后查找历史消息 done function 结果回调函数 Returns: Type Void getUser(options) 获取用户名片 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 账号 done function 结果回调函数, 成功时会返回用户名片 See: 获取用户名片 获取用户名片数组 更新登录用户的名片 Returns: Type Void Example nim.getUser({ account: 'account', done: getUserDone }); function getUserDone(error, user) { console.log('获取用户名片' + (!error?'成功':'失败'), error, obj); if (!error &amp;&amp; user) { onUsers(user); } } getUsers(options) 获取用户名片数组 每次最多 150 个 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description accounts Array.&lt;String&gt; 账号数组 done function 结果回调函数, 成功时会返回用户名片列表 See: 获取用户名片 获取用户名片数组 更新登录用户的名片 Returns: Type Void Example nim.getUsers({ accounts: ['account1', 'account2'], done: getUsersDone }); function getUsersDone(error, users) { console.log('获取用户名片数组' + (!error?'成功':'失败'), error, users); if (!error &amp;&amp; users.length) { onUsers(users); } } insertLocalSession(options) 插入一条本地会话记录 如果会话已存在, 那么会返回错误 如果不支持数据库, 那么算成功 如果有对应会话的本地历史消息, 那么会更新会话的 lastMsg 为最后一条消息 插入成功后, 会触发onupdatesession回调 Parameters: Name Type Argument Description options Object 配置参数 Properties Name Type Description scene String 会话场景 option.to String 会话对象, 账号或群ID options.updateTime Number &lt;optional&gt; 可选, 会话更新的时间, 如果不填, SDK 会设置一个比当前所有会话更新时间大的一个时间 options.done function 结果回调函数, 如果成功会额外附上生成的会话对象 Returns: Type Void Example nim.insertLocalSession({ scene: 'p2p', to: 'account', done: insertLocalSessionDone }); function insertLocalSessionDone(error, obj) { console.log('插入本地会话记录' + (!error?'成功':'失败'), error, obj); if (!error) { onSessions(obj.session); } } interlaceImage(options) interlace 图片 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url 在网络环境较差时, interlace 后的图片会以从模糊到清晰的方式呈现给用户 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url done done 结果回调函数, 成功时附上 interlace 后的图片 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var interlaceUrl = nim.interlaceImage({ url: url, done: interlaceImageDone }); function interlaceImageDone(error, obj) { console.log('interlace 图片' + (!error?'成功':'失败'), error, obj); } isMsgRemoteRead(msg) 查询消息是否被对方读过了 目前只支持'p2p'会话 Parameters: Name Type Description msg IMMessage 消息 Returns: 是否被对方读过 Type Boolean Example var isRemoteRead = nim.isMsgRemoteRead(msg); kick(options) 踢当前用户登录的其它端 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description deviceIds Array.&lt;String&gt; 要踢掉的端的设备号数组 done done 结果回调函数, 成功时会收到被踢掉的设备号数组 Returns: Type Void Example nim.kick({ deviceIds: ['device1'], done: onKick }); function onKick(error, obj) { console.log('踢其它端' + (!error?'成功':'失败')); console.log(error); console.log(obj); } leaveSuperTeam(options) 主动退群 主动退群后, 所有超大群群成员会收到一条类型为'leaveSuperTeam'的群通知消息。此类群通知消息的from字段的值为退群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数 Returns: Type Void Example nim.leaveSuperTeam({ teamId: '123', done: leaveSuperTeamDone }); function leaveSuperTeamDone(error, obj) { console.log('主动退群' + (!error?'成功':'失败'), error, obj); } leaveTeam(options) 主动退群 主动退群后, 所有群成员会收到一条类型为'leaveTeam'的群通知消息。此类群通知消息的from字段的值为退群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id done done 结果回调函数 Returns: Type Void Example nim.leaveTeam({ teamId: '123', done: leaveTeamDone }); function leaveTeamDone(error, obj) { console.log('主动退群' + (!error?'成功':'失败'), error, obj); } logout() 登出SDK 在连接正常的情况下，可以调用该方法退出登录，如果您不确定连接是否正常，请使用connect See: connect Returns: Type Void Example nim.logout(); markInBlacklist(options) 加入黑名单/从黑名单移除 此接口可以完成以下两个功能, 通过参数isAdd来决定实际的功能 isAdd为true时, 会将account加入黑名单 如果一个用户被加入了黑名单, 那么就不再会收到此用户发送的消息 isAdd为false时, 会将account从黑名单移除 如果一个用户被从黑名单移除, 那么会重新收到此用户发送的消息 每个功能SDK都提供了相应的独立接口 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要加入黑名单/从黑名单移除的账号 isAdd Boolean true表示加入黑名单, false表示从黑名单移除 done done 结果回调函数 See: nim.addToBlacklist nim.removeFromBlacklist nim.getRelations Returns: Type Void Example nim.markInBlacklist({ account: 'account', // `true`表示加入黑名单, `false`表示从黑名单移除 isAdd: true, done: markInBlacklistDone }); function markInBlacklistDone(error, obj) { console.log('将' + obj.account + (isAdd ? '加入黑名单' : '从黑名单移除') + (!error?'成功':'失败'), error, obj); if (!error) { onMarkInBlacklist(obj); } } markInMutelist(options) 加入静音列表/从静音列表移除 此接口可以完成以下两个功能, 通过参数isAdd来决定实际的功能 isAdd为true时, 会将account加入静音列表 isAdd为false时, 会将account从静音列表移除 每个功能SDK都提供了相应的独立接口 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要加入静音列表/从静音列表移除的账号 isAdd Boolean true表示加入静音列表, false表示从静音列表移除 done done 结果回调函数 See: nim.addToMutelist nim.removeFromMutelist nim.getRelations Returns: Type Void Example nim.markInMutelist({ account: 'account', // `true`表示加入静音列表, `false`表示从静音列表移除 isAdd: 'true', done: markInMutelistDone }); function markInMutelistDone(error, obj) { console.log('将' + obj.account + (isAdd ? '加入静音列表' : '从静音列表移除') + (!error?'成功':'失败'), error, obj); if (!error) { onMarkInMutelist(obj); } } markMsgRead(msgs) 标记消息为已收到 如果没有消息、或者支持数据库、或者设置了自动标记, 那么直接返回 Parameters: Name Type Description msgs Array.&lt;IMMessage&gt; 待标记的消息或者消息数组 Returns: Type Void Example nim.markMsgRead(someMsg); // or nim.markMsgRead([someMsg]); markSysMsgRead(options) 标记系统通知为已收到 SDK 在收到系统通知后会更新系统通知未读数, 开发者需要调用此接口来通知 SDK 将某条系统通知标记为已读状态, 标记后会触发onupdatesysmsgunread回调 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description sysMsgs SystemMessage | Array.&lt;SystemMessage&gt; 通过onofflinesysmsgs或者onsysmsg接收到的系统通知或者系统通知数组 done done 结果回调函数 Returns: Type Void Example nim.markSysMsgRead({ sysMsgs: someSysMsg, done: markSysMsgReadDone }); function markSysMsgReadDone(error, obj) { console.log(error); console.log(obj); console.log('标记系统通知为已收到' + (!error?'成功':'失败')); } mergeFriends(olds, news) 合并好友 此方法不会改变参数的值，而是会返回新的数组，包含合并后的好友列表 合并时按照 account 的值去重，按照 account 的值正序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'account' }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并好友 Parameters: Name Type Description olds Array.&lt;Friend&gt; 原始好友数组 news Friend | Array.&lt;Friend&gt; 待合并的好友或好友数组 Returns: 合并后的好友数组 Type Array.&lt;Friend&gt; mergeLoginPorts(olds, news) 合并登录端 此方法不会改变参数的值，而是会返回新的数组，包含合并后的登录端列表 合并时按照 deviceId 的值去重，按照 deviceId 的值正序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'deviceId' }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并登录端 Parameters: Name Type Description olds Array.&lt;LoginPort&gt; 原始登录端数组 news LoginPort | Array.&lt;LoginPort&gt; 待合并的登录端或登录端数组 Returns: 合并后的登录端数组 Type Array.&lt;LoginPort&gt; mergeMsgs(olds, news) 合并消息 此方法不会改变参数的值，而是会返回新的数组，包含合并后的消息列表 合并时按照 idClient 的值去重，按照 time 的值排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'idClient', sortPath: 'time' }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并消息 Parameters: Name Type Description olds Array.&lt;Message&gt; 原始消息数组 news Message | Array.&lt;Message&gt; 待合并的消息或消息数组 Returns: 合并后的消息数组 Type Array.&lt;Message&gt; mergeRelations(olds, news) 合并关系 此方法不会改变参数的值，而是会返回新的数组，包含合并后的关系列表 合并时按照 account 的值去重，按照 account 的值正序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'account' }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并关系 Parameters: Name Type Description olds Array.&lt;Relation&gt; 原始关系数组 news Relation | Array.&lt;Relation&gt; 待合并的关系或关系数组 Returns: 合并后的关系数组 Type Array.&lt;Relation&gt; mergeSessions(olds, news) 合并会话 此方法不会改变参数的值，而是会返回新的数组，包含合并后的会话列表 合并时按照 id 的值去重，按照 updateTime 的值倒序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { sortPath: 'updateTime', desc: true }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并会话 Parameters: Name Type Description olds Array.&lt;Session&gt; 原始会话数组 news Session | Array.&lt;Session&gt; 待合并的会话或会话数组 Returns: 合并后的会话数组 Type Array.&lt;Session&gt; mergeSysMsgs(olds, news) 合并系统通知 此方法不会改变参数的值，而是会返回新的数组，包含合并后的系统通知列表 合并时按照 idServer 的值去重，按照 idServer 的值倒序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'idServer', desc: true }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并系统通知 Parameters: Name Type Description olds Array.&lt;SystemMessage&gt; 原始系统通知数组 news SystemMessage | Array.&lt;SystemMessage&gt; 待合并的系统通知或系统通知数组 Returns: 合并后的系统通知数组 Type Array.&lt;SystemMessage&gt; mergeTeamMembers(olds, news) 合并群成员 此方法不会改变参数的值，而是会返回新的数组，包含合并后的群成员列表 合并时按照 id 的值去重，按照 id 的值正序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并群成员 Parameters: Name Type Description olds Array.&lt;TeamMember&gt; 原始群成员数组 news TeamMember | Array.&lt;TeamMember&gt; 待合并的群成员或群成员数组 Returns: 合并后的群成员数组 Type Array.&lt;TeamMember&gt; mergeTeams(olds, news) 合并群 此方法不会改变参数的值，而是会返回新的数组，包含合并后的群列表 合并时按照 teamId 的值去重，按照 teamId 的值正序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'teamId' }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并群 Parameters: Name Type Description olds Array.&lt;Team&gt; 原始群数组 news Team | Array.&lt;Team&gt; 待合并的群或群数组 Returns: 合并后的群数组 Type Array.&lt;Team&gt; mergeUsers(olds, news) 合并名片 此方法不会改变参数的值，而是会返回新的数组，包含合并后的名片列表 合并时按照 account 的值去重，按照 account 的值正序排序 此方法内部调用 NIM.util.mergeObjArray 来完成实际工作if (!olds) {olds = [];} if (!news) {return olds;} if (!NIM.util.isArray(news)) { news = [news]; } if (!news.length) {return olds;} var options = { keyPath: 'account' }; NIM.util.mergeObjArray([], olds, news, options); 如果此方法不满足开发者的业务需求，那么开发者可以根据自己的业务需求调用 NIM.util.mergeObjArray 来合并名片 Parameters: Name Type Description olds Array.&lt;User&gt; 原始名片数组 news User | Array.&lt;User&gt; 待合并的名片或名片数组 Returns: 合并后的名片数组 Type Array.&lt;User&gt; muteTeamAll(options) 群组禁言 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 待禁言群的群id mute Boolean 是否禁言 Returns: Type Void Example nim.muteTeamAll({ teamId: '1027484', mute: 1, done: muteTeamAllDone }) function muteTeamAllDone (error, obj) { console.log('禁言群' + (!error?'成功':'失败')); } notifyForNewTeamMsg(options) 是否需要群消息通知 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamIds Array.&lt;String&gt; 群列表 done done 结果回调函数，成功时第二个参数是一个map, key是群ID, value 是一个布尔值, 表示该群是否需要群消息通知；如果有部分成功部分失败，第三个参数是失败的群ID数组 Returns: Type Void Example nim.notifyForNewTeamMsg({ teamIds: ['123'], done: notifyForNewTeamMsgDone }) function notifyForNewTeamMsgDone(error, map) { console.log(error); console.log(map); console.log('查询是否需要群消息通知' + (!error?'成功':'失败')); } packFileDownloadName(options) 修改图片下载的名字 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url name String 下载的名字 Returns: 修改图片下载名字后的图片 url Type String Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var nameUrl = nim.packFileDownloadName({ url: url, name: '测试.jpg' }); console.log(nameUrl); passFriendApply(options) 通过好友申请 申请加某个用户为好友后, 对方会收到一条类型为'applyFriend'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请。 如果通过好友申请, 那么申请方会收到一条类型为'passFriendApply'的系统通知, 此类群通知消息的from字段的值为通过方的帐号, to字段的值为申请方的账号。 如果拒绝好友申请, 那么申请方会收到一条类型为'rejectFriendApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为申请方的账号。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String 对应的系统通知的 idServer account String 要通过好友申请的账号 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 直接加为好友 申请加为好友 拒绝好友申请 删除好友 更新好友 获取好友列表 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.passFriendApply({ idServer: sysMsg.idServer, account: 'account', ps: 'ps', done: passFriendApplyDone }); function passFriendApplyDone(error, obj) { console.log('通过好友申请' + (!error?'成功':'失败'), error, obj); if (!error) { onAddFriend(obj.friend); } } passSuperTeamApply(options) 通过入群申请 用户申请加入高级群后, 目标群的群主和管理员会收到一条类型为'applySuperTeam'的系统通知，可调用该方法通过该用户的入群申请 通过入群申请后，该群的所有群成员会收到一条类型为'passSuperTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idServer String 对应的系统通知的 idServer teamId String 群ID from String 申请方的帐号 done done 结果回调函数 See: 申请入群 拒绝入群申请 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.passSuperTeamApply({ idServer: sysMsg.idServer, teamId: '123', from: 'a2', done: passSuperTeamApplyDone }); function passSuperTeamApplyDone(error, obj) { console.log('通过入群申请' + (!error?'成功':'失败'), error, obj); } passTeamApply(options) 通过入群申请 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applyTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description idServer String 对应的系统通知的 idServer teamId String 群ID from String 申请方的帐号 done done 结果回调函数 See: 申请入群 拒绝入群申请 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.passTeamApply({ idServer: sysMsg.idServer, teamId: '123', from: 'a2', done: passTeamApplyDone }); function passTeamApplyDone(error, obj) { console.log('通过入群申请' + (!error?'成功':'失败'), error, obj); } previewFile(options) 预览文件 开发者可以预览文件, 支持以下几种场景 通过参数fileInput传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 通过参数blob传入 Blob 对象 通过参数dataURL传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器支持 Blob SDK会将文件上传到文件服务器, 然后将拿到的文件对象在done回调中传给开发者, 文件对象有以下几种 图片对象 音频对象 视频对象 文件对象 开发者在拿到文件对象之后, 可以调用发送文件消息来发送文件消息。 文件大小限制为最大 100M 高级浏览器会在上传前就检测文件大小 IE8/IE9 会在上传完成后检测文件大小 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type String &lt;optional&gt; 文件过滤器 image会过滤掉非图片的文件, audio过滤掉非音频, video会过滤掉非视频的文件 IE8/IE9 不支持文件过滤 fileInput String | Node &lt;optional&gt; 文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 maxSize Number &lt;optional&gt; 限制文件的大小，单位字节 commonUpload Boolean &lt;optional&gt; 使用普通上传（最大100M文件） blob Blob &lt;optional&gt; Blob 对象 dataURL String &lt;optional&gt; 包含 MIME type 和 base64 数据的 data URL uploadprogress uploadprogress &lt;optional&gt; 上传进度, ie9以下不支持上传进度 nosScenes String &lt;optional&gt; 存储场景，不传默认实例化配置，默认为&quot;im&quot; nosSurvivalTime Number &lt;optional&gt; 存储有效时间，不传默认实例化配置 不得小于一天，单位秒 done done 结果回调函数, 成功时会收到文件对象, 请参考 图片对象 音频对象 视频对象 文件对象 Returns: Type Void Example nim.previewFile({ type: 'image', fileInput: fileInput, uploadprogress: function(obj) { console.log('文件总大小: ' + obj.total + 'bytes'); console.log('已经上传的大小: ' + obj.loaded + 'bytes'); console.log('上传进度: ' + obj.percentage); console.log('上传进度文本: ' + obj.percentageText); }, done: function(error, file) { console.log('上传image' + (!error?'成功':'失败')); // show file to the user if (!error) { var msg = nim.sendFile({ scene: 'p2p', to: 'account', file: file, done: sendMsgDone }); console.log('正在发送p2p image消息, id=' + msg.idClient); pushMsg(msg); } } }); processImage(options) 处理图片 此方法接收一组图片操作, 按操作顺序依次处理图片, 可选的操作包括： 修改图片质量 interlace 图片 旋转图片 高斯模糊图片 裁剪图片 生成缩略图 预览文件 发送文件消息 每个操作所需的参数请参考上面的各个方法, 除了上面方法列出来的参数之外, 每个操作需要提供操作类型, 分别是 'quality' 'interlace' 'rotate' 'blur' 'crop' 'thumbnail' 请参考下面的示例代码 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url ops Array 操作序列 done done 结果回调函数, 成功时附上处理后的图片 url Returns: Type Void Example // 裁剪后旋转 var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; nim.processImage({ url: url, ops: [ { type: 'crop', x: 100, y: 0, width: 250, height: 250, }, { type: 'thumbnail', mode: 'cover', width: 80, height: 80 } ], done: processImageDone }); function processImageDone(error, obj) { console.log('处理图片' + (!error?'成功':'失败'), error, obj); } qualityImage(options) 修改图片质量 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url 默认图片质量为100, 开发者可以降低图片质量来省流量 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url quality Int 图片质量, 必须为整数, 取值范围为 0-100, 此方法内部使用 Math.round 来格式化 quality done done 结果回调函数, 成功时附上修改质量后的图片 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var qualityUrl = nim.qualityImage({ url: url, quality: 20, done: qualityImageDone }); function qualityImageDone(error, obj) { console.log('修改图片质量' + (!error?'成功':'失败'), error, obj); } rejectFriendApply(options) 拒绝好友申请 申请加某个用户为好友后, 对方会收到一条类型为'applyFriend'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请。 如果通过好友申请, 那么申请方会收到一条类型为'passFriendApply'的系统通知, 此类群通知消息的from字段的值为通过方的帐号, to字段的值为申请方的账号。 如果拒绝好友申请, 那么申请方会收到一条类型为'rejectFriendApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为申请方的账号。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String 对应的系统通知的 idServer account String 要拒绝好友申请的账号 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 直接加为好友 申请加为好友 通过好友申请 删除好友 更新好友 获取好友列表 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.rejectFriendApply({ idServer: sysMsg.idServer, account: 'account', ps: 'ps', done: rejectFriendApplyDone }); function rejectFriendApplyDone(error, obj) { console.log(error); console.log(obj); console.log('拒绝好友申请' + (!error?'成功':'失败')); } rejectSuperTeamApply(options) 拒绝入群申请 用户申请加入高级群后, 目标群的群主和管理员会收到一条类型为'applySuperTeam'的系统通知，可调用该方法拒绝该入群申请 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectSuperTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String 对应的系统通知的 idServer teamId String 群ID from String 申请方的帐号 ps String &lt;optional&gt; 附言, 选填, 长度不能大于5000, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 申请入群 通过入群申请 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.rejectSuperTeamApply({ idServer: sysMsg.idServer, teamId: '123', from: 'a2', ps: '就不', done: rejectSuperTeamApplyDone }); function rejectSuperTeamApplyDone(error, obj) { console.log('拒绝入群申请' + (!error?'成功':'失败'), error, obj); } rejectSuperTeamInvite(options) 拒绝入群邀请 高级群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptSuperTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectSuperTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String 对应的系统通知的 idServer teamId String 群id from String 邀请方的帐号 ps String &lt;optional&gt; 附言, 选填, 长度不能大于5000, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 接受入群邀请 拉人入群 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.rejectSuperTeamInvite({ idServer: sysMsg.idServer, teamId: '123', from: 'zyy1', ps: '就不', done: rejectSuperTeamInviteDone }); function rejectSuperTeamInviteDone(error, obj) { console.log('拒绝入群邀请' + (!error?'成功':'失败'), error, obj); } rejectTeamApply(options) 拒绝入群申请 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applyTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String 对应的系统通知的 idServer teamId String 群ID from String 申请方的帐号 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 申请入群 通过入群申请 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.rejectTeamApply({ idServer: sysMsg.idServer, teamId: '123', from: 'a2', ps: '就不', done: rejectTeamApplyDone }); function rejectTeamApplyDone(error, obj) { console.log('拒绝入群申请' + (!error?'成功':'失败'), error, obj); } rejectTeamInvite(options) 拒绝入群邀请 高级群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String 对应的系统通知的 idServer teamId String 群id from String 邀请方的帐号 ps String &lt;optional&gt; 附言, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 接受入群邀请 拉人入群 Returns: Type Void Example // 假设 sysMsg 是通过回调 `onsysmsg` 收到的系统通知 nim.rejectTeamInvite({ idServer: sysMsg.idServer, teamId: '123', from: 'zyy1', ps: '就不', done: rejectTeamInviteDone }); function rejectTeamInviteDone(error, obj) { console.log('拒绝入群邀请' + (!error?'成功':'失败'), error, obj); } removeFromBlacklist(options) 从黑名单移除 如果一个用户被从黑名单移除, 那么会重新收到此用户发送的消息 SDK内部调用nim.markInBlacklist来完成实际工作 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要从黑名单移除的账号 done done 结果回调函数 See: nim.markInBlacklist nim.addToBlacklist nim.getRelations Returns: Type Void Example nim.removeFromBlacklist({ account: 'account', done: removeFromBlacklistDone }); function removeFromBlacklistDone(error, obj) { console.log('从黑名单移除' + (!error?'成功':'失败'), error, obj); if (!error) { removeFromBlacklist(obj); } } removeFromMutelist(options) 从静音列表移除 SDK只负责维护静音列表, 具体要根据静音列表进行的操作由开发者决定 SDK内部调用nim.markInMutelist来完成实际工作 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 要从静音列表移除的账号 done done 结果回调函数 See: nim.markInMutelist nim.addToMutelist nim.getRelations Returns: Type Void Example nim.removeFromMutelist({ account: 'account', done: removeFromMutelistDone }); function removeFromMutelistDone(error, obj) { console.log('从静音列表移除' + (!error?'成功':'失败'), error, obj); if (!error) { removeFromMutelist(obj); } } removeSuperTeamManagers(options) 移除群管理员 移除群管理员后, 所有群成员会收到一条类型为'removeSuperTeamManagers'的群通知消息。此类群通知消息的from字段的值为移除群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被移除的管理员的帐号列表, attach有一个字段members的值为被移除管理员的群成员列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 要移除的管理员帐号列表 done done 结果回调函数 See: 添加群管理员 Returns: Type Void Example nim.removeSuperTeamManagers({ teamId: '123', accounts: ['a2', 'a3'], done: removeSuperTeamManagersDone }); function removeSuperTeamManagersDone(error, obj) { console.log('移除群管理员' + (!error?'成功':'失败'), error, obj); } removeSuperTeamMembers(options) 踢人出群 踢人出群, 所有超大群群成员会收到一条类型为'removeSuperTeamMembers'的群通知消息。此类群通知消息的from字段的值为退群的人的帐号, to字段的值为对应的群ID；attach有一个字段team的值为对应的超大群对象，有一个字段accounts的是被踢人的账号数组。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 要移除的成员帐号列表 done done 结果回调函数 See: 拉人入超大群 Returns: Type Void Example nim.removeSuperTeamMembers({ teamId: '123', accounts: ['a3', 'a4'], done: removeSuperTeamMembersDone }); function removeSuperTeamMembersDone(error, obj) { console.log('踢人出群' + (!error?'成功':'失败'), error, obj); } removeTeamManagers(options) 移除群管理员 移除群管理员后, 所有群成员会收到一条类型为'removeTeamManagers'的群通知消息。此类群通知消息的from字段的值为移除群管理员的人的帐号, to字段的值为对应的群ID, attach有一个字段accounts的值为被移除的管理员的帐号列表, attach有一个字段members的值为被移除管理员的群成员列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 要移除的管理员帐号列表 done done 结果回调函数 See: 添加群管理员 Returns: Type Void Example nim.removeTeamManagers({ teamId: '123', accounts: ['a2', 'a3'], done: removeTeamManagersDone }); function removeTeamManagersDone(error, obj) { console.log('移除群管理员' + (!error?'成功':'失败'), error, obj); } removeTeamMembers(options) 踢人出群 踢人出群后, 所有群成员会收到一条类型为'removeTeamMembers'的群通知消息。此类群通知消息的from字段的值为踢人的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段accounts的值为被踢的人的帐号列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array.&lt;String&gt; 要移除的成员帐号列表 done done 结果回调函数 See: 拉人入群 Returns: Type Void Example nim.removeTeamMembers({ teamId: '123', accounts: ['a3', 'a4'], done: removeTeamMembersDone }); function removeTeamMembersDone(error, obj) { console.log('踢人出群' + (!error?'成功':'失败'), error, obj); } resetCurrSession() 重置当前会话 重置当前会话后, 所有会话在收到消息之后会更新未读数 Example nim.resetCurrSession(); resetSessionUnread(sessionId) 重置某个会话的未读数 如果是已经存在的会话记录, 会将此会话未读数置为 0, 那么会收到onupdatesession回调 之后此会话在收到消息之后依然会更新未读数 Parameters: Name Type Description sessionId String 会话ID Returns: Type Void Example nim.resetSessionUnread('sessionId'); rotateImage(options) 旋转图片 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url angle Int 旋转的角度, 正整数表示顺时针, 负整数表示逆时针, 必须为整数, 此方法内部会先将 angle 格式化为 [0, 360] 范围内的数字, 然后使用 Math.round 来格式化 angle done done 结果回调函数, 成功时附上旋转后的图片的 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var rotateUrl = nim.rotateImage({ url: url, angle: 90, done: rotateImageDone }); function rotateImageDone(error, obj) { console.log('旋转图片' + (!error?'成功':'失败'), error, obj); } saveMsgsToLocal(options) 将消息存储至本地数据库 若不支持数据库，算成功 SDK仅会主动存储离线、漫游、在线时收发的消息，其他消息开发者可根据需要调用该接口存储到本地数据库 请考虑用户终端上数据库的容量合理使用、定时清除，避免出现爆仓等问题 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description msgs Array 要存储的消息数据，每条消息都应该至少包含idClient，并符合云信消息的结构 done function 结果回调函数 Example nim.saveMsgsToLocal({ msgs: msgs, // 要存储的消息 done: err =&gt; console.log(err ? '存储失败' : '存储成功') }) searchHistoryMsgs(options) 获取云端包含关键词的历史记录 跟获取历史消息接口类似, 只是去掉了参数lastMsgId, 增加了参数keyword(要搜索的关键词) Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String 聊天对象, 账号或者群id keyword String 待搜索的关键词 beginTime Number &lt;optional&gt; 时间戳, 开始时间, 精确到ms, 默认为0 endTime Number &lt;optional&gt; 时间戳, 结束时间, 精确到ms, 默认为服务器的当前时间 limit Number &lt;optional&gt; 本次查询的消息数量限制, 最多100条, 默认100条 reverse Boolean &lt;optional&gt; false 默认false表示从endTime开始往前查找历史消息; true表示从beginTime开始往后查找历史消息 asc Boolean &lt;optional&gt; false 默认false表示返回的消息按时间逆序排序; true表示按时间正序排序 done done 结果回调函数, 成功时会额外附上消息列表 Returns: Type Void Example nim.searchHistoryMsgs({ scene: 'p2p', to: 'account', keyword: 'keyword', done: searchHistoryMsgsDone }); function searchHistoryMsgsDone(error, obj) { console.log('获取云端包含关键词的历史记录' + (!error?'成功':'失败'), error, obj); if (!error) { console.log(obj.msgs); } } searchLocal(options) 搜索本地内容，支持搜索本地会话和本地联系人 可细分为大搜索和定向搜索 传入参数keyPath时，SDK会根据键路径做定向搜索。比如keyPath为session时，只搜索会话;keyPath为user时，只搜索好友联系人;keyPath为session.lastMsg.type时，只搜索会话lastMsg的消息类型 没有传入参数keyPath时，SDK会进行大搜索：遍历搜索所有的keyPath user的keyPath列表：['user.account', 'user.nick', 'user.alias']；session的keyPath列表：['session.id', 'session.scene', 'session.lastMsg.type', 'session.lastMsg.text', 'session.localCustom', 'session.target.account', 'session.target.nick', 'session.target.alias', 'session.target.name'] 不使用数据库时，返回空 Parameters: Name Type Description options 查询参数 Properties Name Type Argument Description keyword 待搜索的关键词 keyPath &lt;optional&gt; 定点搜索时使用 done &lt;optional&gt; 结果回调函数，第二个参数是一个对象，它有三个属性users、sessions和msg， 分别是匹配到的用户、匹配到的会话和没匹配到时的原因 sendCustomMsg(options) 发送自定义消息 自定义消息是消息类型的一种 下面的代码用自定义消息实现了石头剪刀布游戏 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String | Number 接收方, 对方帐号或者群id content String 自定义消息的消息内容, 推荐使用JSON格式构建 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 pushContent String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 自定义的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Default Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 不填表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案, 不填的话默认为 pushContent forcePush String &lt;optional&gt; true 是否强制推送, true 表示即使推送列表中的胡勇屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 isHistoryable Boolean &lt;optional&gt; true 是否存储云端历史 isRoamingable Boolean &lt;optional&gt; true 是否支持漫游 isSyncable Boolean &lt;optional&gt; true 是否支持发送者多端同步 cc Boolean &lt;optional&gt; 是否支持抄送 isPushable Boolean &lt;optional&gt; true 是否需要推送 isOfflinable Boolean &lt;optional&gt; true 是否要存离线 isUnreadable Boolean &lt;optional&gt; true 是否计入消息未读数 needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称 isLocal Boolean &lt;optional&gt; false 是否是本地消息 localFrom String &lt;optional&gt; 本地消息的发送方，默认是当前用户 只有发送本地消息时，才可自定义发送方 true表示本地消息, 那么SDK并不会发送此条消息, 而是直接调用回调表示发送成功, 并更新对应的会话 replyMsg Object &lt;optional&gt; 要回复的消息对象，表示当前消息是对某条消息的回复 done done 结果回调函数 Returns: 消息 Type Message Example var value = Math.ceil(Math.random()*3); var content = { type: 1, data: { value: value } }; var msg = nim.sendCustomMsg({ scene: 'p2p', to: 'account', content: JSON.stringify(content), done: sendMsgDone }); console.log('正在发送p2p自定义消息, id=' + msg.idClient); pushMsg(msg); sendCustomSysMsg(options) 发送自定义系统通知 开发者可以向其他用户或群发送自定义通知。 自定义系统通知和自定义消息的区别如下 自定义消息属于消息, 会存储在云信的消息数据库中, 需要跟其他消息一同展现给用户。 自定义系统通知属于系统通知, 用于第三方通知自己, 不会存储在云信的数据库中, SDK不会解析这些通知, SDK仅仅负责传递这些通知。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景跟消息场景的一样, 分为p2p(点对点)和team(群)和superTeam(超大群)。 to String | Number 接收方, 帐号或者群id content String 自定义系统通知的内容, 推荐使用JSON格式构建 apnsText String &lt;optional&gt; apns推送文案, 仅对接收方为iOS设备有效 pushPayload String &lt;optional&gt; 自定义系统通知的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 sendToOnlineUsersOnly Boolean &lt;optional&gt; true 是否只发送给在线用户。 true时只发送给在线用户, 如果接收方不在线, 这条通知将被丢弃。 适合发送即时通知, 比如正在输入。 false时假如接收方在线, 那么会立即收到该通知, 假如接收方不在线, 会在其上线后推送过去。 cc Boolean &lt;optional&gt; 是否抄送 isPushable Boolean &lt;optional&gt; true 是否需要推送 needPushNick Boolean &lt;optional&gt; false 是否需要推送昵称 done done 结果回调函数 See: 发送自定义消息 Returns: SDK生成的ID Type String Example var content = { type: 'type', value: 'value' }; content = JSON.stringify(content); var msgId = nim.sendCustomSysMsg({ scene: 'p2p', to: 'account', content: content, sendToOnlineUsersOnly: false, apnsText: content, done: sendCustomSysMsgDone }); console.log('正在发送p2p自定义系统通知, id=' + msgId); function sendCustomSysMsgDone(error, msg) { console.log(error); console.log(msg); console.log('发送' + msg.scene + '自定义系统通知' + (!error?'成功':'失败') + ', id=' + msg.idClient); } sendFile(options) 发送文件消息 文件消息是消息类型的一种 开发者可以直接发送文件消息 支持以下几种场景 通过参数fileInput传入文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 通过参数blob传入 Blob 对象 通过参数dataURL传入包含 MIME type 和 base64 数据的 data URL, 此用法需要浏览器支持 Blob SDK会先将文件上传到文件服务器, 然后把拿到的文件对象在uploaddone回调中传给用户, 然后将其拼装成文件消息发送出去。 开发者也可以先预览文件来获取文件对象, 然后调用此接口发送文件消息。 通过参数file传入文件 直接发送文件消息的话会在beforesend回调里面传入SDK生成的idClient, 如果先预览文件再发送, 那么此接口会直接返回idClient 参数type指定了要发送的文件类型, 包括图片、音频、视频和普通文件, 对应的值分别为'image'、'audio'、'video'和'file', 不传默认为'file'。 图片、音频、视频和普通文件的区别在于具体的文件信息不一样, 具体字段请参考 图片对象 音频对象 视频对象 文件对象 机器人对象 文件大小限制为最大100M 高级浏览器会在上传前就检测文件大小 IE8和IE9会在上传完成后检测文件大小 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String | Number 接收方, 对方帐号或者群id type String &lt;optional&gt; 文件过滤器, 'image'会过滤掉非图片的文件, 'audio'过滤掉非音频, 'video'会过滤掉非视频的文件, IE8/IE9 不支持文件过滤 fileInput String | Node &lt;optional&gt; 文件选择 dom 节点或者节点 ID, SDK 会读取该节点下的文件, 在上传完成前请不要操作该节点下的文件 maxSize Number &lt;optional&gt; 限制文件的大小，单位字节 commonUpload Boolean &lt;optional&gt; 使用普通上传（最大100M文件） blob Blob &lt;optional&gt; Blob 对象 dataURL String &lt;optional&gt; MIME type 和 base64 数据的 data URL file Array &lt;optional&gt; 文件对象, 开发者可以通过预览文件拿到文件对象 wxFilePath String &lt;optional&gt; 仅供微信小程序使用, 通过 wx.chooseImage 或者 wx.startRecord 拿到的临时文件路径 resend Boolean &lt;optional&gt; false 是否是重发 beginupload function &lt;optional&gt; 开始上传图片的回调 如果开发者传入 fileInput, 在此回调之前不能修改 fileInput 在此回调之后可以取消图片上传, 此回调会接收一个参数 upload, 调用 upload.abort(); 来取消文件上传 uploadprogress uploadprogress &lt;optional&gt; 上传进度, IE9以下不支持上传进度 uploaddone uploaddone &lt;optional&gt; 上传完成回调 此回调接收两个参数, error 和 obj 如果出错, error 包含详细的错误信息 如果上传成功, obj 包含详细的文件信息 beforesend beforesend &lt;optional&gt; 发送文件消息之前的回调函数 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 pushContent String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 自定义的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Default Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 不填表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案, 不填的话默认为 pushContent forcePush String &lt;optional&gt; true 是否强制推送, true 表示即使推送列表中的胡勇屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 isHistoryable Boolean &lt;optional&gt; true 是否存储云端历史 isRoamingable Boolean &lt;optional&gt; true 是否支持漫游 isSyncable Boolean &lt;optional&gt; true 是否支持发送者多端同步 cc Boolean &lt;optional&gt; 是否支持抄送 isPushable Boolean &lt;optional&gt; true 是否需要推送 isOfflinable Boolean &lt;optional&gt; true 是否要存离线 isUnreadable Boolean &lt;optional&gt; true 是否计入消息未读数 needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称 isLocal Boolean &lt;optional&gt; false 是否是本地消息 true表示本地消息, 那么SDK并不会发送此条消息, 而是直接调用回调表示发送成功, 并更新对应的会话 localFrom String &lt;optional&gt; 本地消息的发送方，默认是当前用户 只有发送本地消息时，才可自定义发送方 nosScenes String &lt;optional&gt; 存储场景，不传默认实例化配置 nosSurvivalTime Number &lt;optional&gt; 存储有效时间，不传默认实例化配置 不得小于一天，单位秒 replyMsg Object &lt;optional&gt; 要回复的消息对象，表示当前消息是对某条消息的回复 done done 结果回调函数 Returns: 如果提供了参数fileInput, 那么先上传文件到服务器再发送, 不会返回消息, 会在beforesend里面返回消息. 如果提供了参数file, 那么直接发送文件消息, 返回消息 Type Void | Message Example nim.sendFile({ scene: 'p2p', to: 'account', type: 'image', fileInput: fileInput, uploadprogress: function(obj) { console.log('文件总大小: ' + obj.total + 'bytes'); console.log('已经上传的大小: ' + obj.loaded + 'bytes'); console.log('上传进度: ' + obj.percentage); console.log('上传进度文本: ' + obj.percentageText); }, uploaddone: function(error, file) { console.log('上传' + (!error?'成功':'失败'), error, file); }, beforesend: function(msg) { console.log('正在发送p2p image消息, id=' + msg.idClient); pushMsg(msg); }, done: sendMsgDone }); sendGeo(options) 发送地理位置消息 地理位置消息是消息类型的一种, geo参数请参考地理位置对象 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String | Number 接收方, 对方帐号或者群id geo Object 地理位置对象 Properties Name Type Description lng Number 经度 lat Number 纬度 title String 地址描述 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 pushContent String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 自定义的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Default Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 不填表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案, 不填的话默认为 pushContent forcePush String &lt;optional&gt; true 是否强制推送, true 表示即使推送列表中的用户屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 isHistoryable Boolean &lt;optional&gt; true 是否存储云端历史 isRoamingable Boolean &lt;optional&gt; true 是否支持漫游 isSyncable Boolean &lt;optional&gt; true 是否支持发送者多端同步 cc Boolean &lt;optional&gt; 是否支持抄送 isPushable Boolean &lt;optional&gt; true 是否需要推送 isOfflinable Boolean &lt;optional&gt; true 是否要存离线 isUnreadable Boolean &lt;optional&gt; true 是否计入消息未读数 needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称 isLocal Boolean &lt;optional&gt; false 是否是本地消息 true表示本地消息, 那么SDK并不会发送此条消息, 而是直接调用回调表示发送成功, 并更新对应的会话 localFrom String &lt;optional&gt; 本地消息的发送方，默认是当前用户 只有发送本地消息时，才可自定义发送方 replyMsg Object &lt;optional&gt; 要回复的消息对象，表示当前消息是对某条消息的回复 done done 结果回调函数 Returns: 消息 Type Message Example var msg = nim.sendGeo({ scene: 'p2p', to: 'account', geo: { lng: '116.3833', lat: '39.9167', title: 'Beijing' }, done: sendMsgDone }); console.log('正在发送p2p geo消息, id=' + msg.idClient); pushMsg(msg); sendMsgReceipt(options) 发送消息已读回执 目前只支持'p2p'会话 如果没有传入消息, 则直接返回成功 如果已经发送过比传入的消息的时间戳大的已读回执, 那么直接返回成功 Parameters: Name Type Description options Object 参数 Properties Name Type Description msg IMMessage 要发送已读回执的会话的最后一条消息, 可以直接通过session.lastMsg来获取此消息 done function 结果回调函数 Returns: Type Void Example nim.sendMsgReceipt({ msg: session.lastMsg, done: sendMsgReceiptDone }); function sendMsgReceiptDone(error, obj) { console.log('发送消息已读回执' + (!error?'成功':'失败'), error, obj); } sendRobotMsg(options) 给机器人发送消息 机器人消息是消息类型的一种 机器人消息类型分为type为robot Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String &lt;optional&gt; 场景 to String | Number &lt;optional&gt; 接收方, 对方帐号或者群id，如果id为机器人，则点对点与机器人聊天，如果id为普通用户或者群，则相当于聊天界面@机器人 content Object &lt;optional&gt; 发送给机器人的消息内容 Properties Name Type Argument Description type String &lt;optional&gt; welcome:欢迎消息，text:文本，link:模块跳转 content String &lt;optional&gt; 机器人消息内容 target String &lt;optional&gt; 返回消息类型为BOT时出现的link元素类型block中的target params String &lt;optional&gt; 返回消息类型为BOT时出现的link元素类型block中的params userid String &lt;optional&gt; 区分谁和机器人说话的ID channel String &lt;optional&gt; 渠道 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Default Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 不填表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案, 不填的话默认为 pushContent forcePush String &lt;optional&gt; true 是否强制推送, true 表示即使推送列表中的胡勇屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 isHistoryable Boolean &lt;optional&gt; true 是否存储云端历史 isRoamingable Boolean &lt;optional&gt; true 是否支持漫游 isSyncable Boolean &lt;optional&gt; true 是否支持发送者多端同步 cc Boolean &lt;optional&gt; 是否支持抄送 isPushable Boolean &lt;optional&gt; true 是否需要推送 isOfflinable Boolean &lt;optional&gt; true 是否要存离线 isUnreadable Boolean &lt;optional&gt; true 是否计入消息未读数 needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称 isLocal Boolean &lt;optional&gt; false 是否是本地消息 true表示本地消息, 那么SDK并不会发送此条消息, 而是直接调用回调表示发送成功, 并更新对应的会话 localFrom String &lt;optional&gt; 本地消息的发送方，默认是当前用户 只有发送本地消息时，才可自定义发送方 replyMsg Object &lt;optional&gt; 要回复的消息对象，表示当前消息是对某条消息的回复 done done 结果回调函数 Returns: 消息 Type Message Example var msg = nim.sendRobotMsg({ scene: 'p2p', to: 'nim-assistant', content: { type: 'text', content: 'hello' }, body: '欢迎', robotAccid: 'nim-assistant', done: function sendMsgDone (err) { console.log(11111111, err) } }) console.log('正在发送p2p自定义消息, id=' + msg.idClient); pushMsg(msg); sendTeamMsgReceipt(options) 标记群组消息已读 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamMsgReceipts Array.&lt;Object&gt; 已读消息对象 teamMsgReceipt.teamId String 群序号 teamMsgReceipt.idServer String 消息编号 Returns: Type Void Example nim.sendTeamMsgReceipt({ teamMsgReceipts: [{ teamId: '1027484', idServer: '68953284018302' }], done: sendTeamMsgReceiptDone }) function sendTeamMsgReceiptDone (error, obj) { console.log('标记群组消息已读' + (!error?'成功':'失败')); } sendText(options) 发送文本消息 文本消息是消息的一种, 请参考消息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String 接收方, 对方帐号或者群id text String 文本消息内容 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 pushContent String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 自定义的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称 isHistoryable Boolean &lt;optional&gt; true 是否存储云端历史 isRoamingable Boolean &lt;optional&gt; true 是否支持漫游 isSyncable Boolean &lt;optional&gt; true 是否支持发送者多端同步 cc Boolean &lt;optional&gt; 是否支持抄送 isInBlackList Boolean &lt;optional&gt; true 发送此条消息时，发送方'from'是否在接收方'to'的黑名单列表中 isPushable Boolean &lt;optional&gt; true 是否需要推送 isOfflinable Boolean &lt;optional&gt; true 是否要存离线 isUnreadable Boolean &lt;optional&gt; true 是否计入消息未读数 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Default Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 不填表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案, 不填的话默认为 pushContent forcePush String &lt;optional&gt; true 是否强制推送, true 表示即使推送列表中的胡勇屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 isLocal Boolean &lt;optional&gt; false 是否是本地消息 true表示本地消息, 那么SDK并不会发送此条消息, 而是直接调用回调表示发送成功, 并更新对应的会话 localFrom String &lt;optional&gt; 本地消息的发送方，默认是当前用户 只有发送本地消息时，才可自定义发送方 needMsgReceipt Boolean &lt;optional&gt; false 是否需要业务已读（包含该字段且为true即表示需要） clientAntiSpam Boolean &lt;optional&gt; false 是否需要过客户端反垃圾 yidunEnable Boolean &lt;optional&gt; false 是否需要过易盾反垃圾 antiSpamContent String &lt;optional&gt; 在开启yidunEnable后, 开发者自定义的反垃圾字段（json格式)，格式如下：{&quot;type&quot;: 1, &quot;data&quot;: &quot;custom content&quot;} 字段说明：type:1.文本，2.图片，3视频，data内容:文本内容or图片地址or视频地址 antiSpamBusinessId String &lt;optional&gt; 用户配置的对某条单条消息另外反垃圾的业务ID antiSpamUsingYidun Boolean &lt;optional&gt; false 单条消息是否需要易盾反垃圾 needUpdateSession Boolean &lt;optional&gt; true 是否需要刷新服务器会话列表，默认是（请注意区分两种会话） replyMsg Object &lt;optional&gt; 要回复的消息对象，表示当前消息是对某条消息的回复 done done 结果回调函数 Returns: 消息 Type Message Example var msg = nim.sendText({ scene: 'p2p', to: 'account', text: 'hello', done: sendMsgDone }); console.log('正在发送p2p text消息, id=' + msg.idClient); pushMsg(msg); function sendMsgDone(error, msg) { console.log('发送' + msg.scene + ' ' + msg.type + '消息' + (!error?'成功':'失败') + ', id=' + msg.idClient, error, msg); } sendTipMsg(options) 发送提醒消息 提醒消息是消息类型的一种 提醒消息用于会话内的状态提醒，如进入会话时出现的欢迎消息，或者会话命中敏感词后的提示消息等等. Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description scene String 场景 to String | Number 接收方, 对方帐号或者群id tip String 提醒内容 resend Boolean &lt;optional&gt; 是否是重发 idClient String &lt;optional&gt; 如果是重发, 那么需要带上之前生成的idClient来标记这条消息 custom String &lt;optional&gt; 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 pushContent String &lt;optional&gt; 自定义推送文案 pushPayload String &lt;optional&gt; 自定义的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 apns Object &lt;optional&gt; 特殊推送选项, 只在群会话中使用 Properties Name Type Argument Default Description accounts Array.&lt;String&gt; &lt;optional&gt; 需要特殊推送的账号列表, 不填表示推送给当前会话内的所有用户 content String &lt;optional&gt; 需要特殊推送的文案, 不填的话默认为 pushContent forcePush String &lt;optional&gt; true 是否强制推送, true 表示即使推送列表中的胡勇屏蔽了当前会话（如静音）, 仍能够推送当前这条内容给相应用户 isHistoryable Boolean &lt;optional&gt; true 是否存储云端历史 isRoamingable Boolean &lt;optional&gt; true 是否支持漫游 isSyncable Boolean &lt;optional&gt; true 是否支持发送者多端同步 cc Boolean &lt;optional&gt; 是否支持抄送 isPushable Boolean &lt;optional&gt; true 是否需要推送 isOfflinable Boolean &lt;optional&gt; true 是否要存离线 isUnreadable Boolean &lt;optional&gt; true 是否计入消息未读数 needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称 isLocal Boolean &lt;optional&gt; false 是否是本地消息 true表示本地消息, 那么SDK并不会发送此条消息, 而是直接调用回调表示发送成功, 并更新对应的会话 localFrom String &lt;optional&gt; 本地消息的发送方，默认是当前用户 只有发送本地消息时，才可自定义发送方 replyMsg Object &lt;optional&gt; 要回复的消息对象，表示当前消息是对某条消息的回复 done done 结果回调函数 Returns: 消息 Type Message Example var msg = nim.sendTipMsg({ scene: 'p2p', to: 'account', tip: 'tip content', done: sendMsgDone }); console.log('正在发送p2p提醒消息, id=' + msg.idClient); pushMsg(msg); setCurrSession(sessionId) 设置当前会话 设置后, 当前会话未读数会被置为 0, 同时开发者会收到 onupdatesession 回调 之后此会话在收到消息之后不会更新未读数 传空字符串的话, 重置当前会话为空 Parameters: Name Type Description sessionId String 会话ID Returns: Type Void Example nim.setCurrSession('sessionId'); setOptions(options) 更新配置, 参数格式跟 NIM.getInstance 保持一致 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description token String 帐号的 token, 用于建立连接 Example // 更新 token 的例子 nim.setOptions({ token: 'newToken' }); stripImageMeta(options) 去除图片元信息 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url 去除元信息后的图片将不包含 EXIF 信息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url done done 结果回调函数, 成功时附上 interlace 后的图片 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var interlaceUrl = nim.stripImageMeta({ url: url, strip: true, done: stripImageMetaDone }); function stripImageMetaDone(error, obj) { console.log('去除图片元信息' + (!error?'成功':'失败'), error, obj); } thumbnailImage(options) 生成缩略图 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url width/height 限制了缩略图的尺寸 width/height 必须大于等于 0, 不能同时为 0, 必须小于 4096 不同模式下生成的缩略图是不一样的, 目前支持以下三种模式 'cover': 原图片等比缩略, 缩略图一边等于请求的尺寸, 另一边大于请求的尺寸, 即缩略图刚好能覆盖住尺寸为 width*height 的矩形 'contain': 原图片等比缩略, 缩略图一边等于请求的尺寸, 另一边小于请求的尺寸, 即尺寸为 width*height 的矩形刚好能覆盖住缩略图 'crop': 先等比缩略原图片, 使得一边等于请求的尺寸, 另一边大于请求的尺寸, 然后对大于请求尺寸的那条边进行裁剪, 使得最终的图片大小刚好等于请求的尺寸 如果缩略图尺寸大于图片尺寸, 默认情况下图片不会被放大, 可以传入参数enlarge=true来放大图片 'crop' 模式下可以传入参数 axis.x 或 axis.y 来控制最后一步裁剪的位置 x/y 必须为整数, 取值范围为 0-10, 此方法内部使用 Math.round 来格式化 x/y x 为 0 时表示裁取最左端, x 为 10 时表示裁取最右端 y 为 0 时表示裁取最上端, y 为 10 时表示裁取最下端 x/y 默认值均为 5, 即裁取正中间 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description url String 原图 url width Int &lt;optional&gt; 缩略图的最大宽度, 必须为整数, 此方法内部使用 Math.round 来格式化 width/height height Int &lt;optional&gt; 缩略图的最大高度, 必须为整数, 此方法内部使用 Math.round 来格式化 width/height mode String 缩略模式, 目前支持以下三种模式, 请参考上面的描述 'cover' 'contain' 'crop' axis.x Int &lt;optional&gt; 'crop' 模式下控制最后一步裁剪的位置, 请参考上面的描述 axis.y Int &lt;optional&gt; 'crop' 模式下控制最后一步裁剪的位置, 请参考上面的描述 enlarge Boolean &lt;optional&gt; false 当图片尺寸小于要缩略的尺寸时, 是否放大图片, 默认false不放大 done done 结果回调函数, 成功时附上缩略后的图片 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var thumbnailUrl = nim.thumbnailImage({ url: url, mode: 'cover', width: 80, height: 100, done: thumbnailImageDone }); function thumbnailImageDone(error, obj) { console.log('生成缩略图' + (!error?'成功':'失败'), error, obj); } transferSuperTeam(options) 转让群 转让群后, 所有群成员会收到一条类型为'transferSuperTeam'的群通知消息。此类群通知消息的from字段的值为转让群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为为新群主的帐号, attach有一个字段members的值为包含新旧群主的群成员列表。 如果转让群的同时离开群, 那么相当于调用主动退群来离开群, 所有群成员会再收到一条类型为'leaveSuperTeam'的群通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id account String 新群主的帐号 leave Boolean 转让群的同时是否离开群 done done 结果回调函数 See: 离开群 Returns: Type Void Example nim.transferSuperTeam({ teamId: '123', account: 'zyy2', leave: false, done: transferOwnerDone }); function transferOwnerDone(error, obj) { console.log('转让群' + (!error?'成功':'失败'), error, obj); } transferTeam(options) 转让群 转让群后, 所有群成员会收到一条类型为'transferTeam'的群通知消息。此类群通知消息的from字段的值为转让群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为为新群主的帐号, attach有一个字段members的值为包含新旧群主的群成员列表。 如果转让群的同时离开群, 那么相当于调用主动退群来离开群, 所有群成员会再收到一条类型为'leaveTeam'的群通知消息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id account String 新群主的帐号 leave Boolean 转让群的同时是否离开群 done done 结果回调函数 See: 离开群 Returns: Type Void Example nim.transferTeam({ teamId: '123', account: 'zyy2', leave: false, done: transferOwnerDone }); function transferOwnerDone(error, obj) { console.log('转让群' + (!error?'成功':'失败'), error, obj); } updateCollect(options, done) 更新收藏 只允许更新扩展字段custom Parameters: Name Type Description options Object 配置参数 Properties Name Type Description collect Object 新的Collect对象，至少要包含id、createTime和更新后的custom三个字段；如要删除custom，可不填 done function 结果回调函数，第一个参数是error，第二个参数有一个属性collect，代表更新后的收藏对象 updateFriend(options) 更新好友 开发者可以用此接口来更新好友的备注 开发者也可以使用JSON格式的扩展字段来进行扩展 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description account String 要更新的好友的account alias String &lt;optional&gt; 备注 custom String &lt;optional&gt; 扩展字段, 选填, 开发者也可以使用JSON格式的字符串来扩展此内容 done done 结果回调函数 See: 直接加为好友 申请加为好友 通过好友申请 拒绝好友申请 删除好友 获取好友列表 Returns: Type Void Example nim.updateFriend({ account: 'account', alias: 'alias', custom: 'custom', done: updateFriendDone }); function updateFriendDone(error, obj) { console.log('更新好友' + (!error?'成功':'失败'), error, obj); if (!error) { onUpdateFriend(obj); } } updateInfoInSuperTeam(options) 修改个人群成员信息 (修改自己的群属性) 目前支持修改的属性有这些 nickInTeam: 自己在群里面的群昵称 更新昵称后, 所有其它在线的群成员会收到初始化SDK时传入的onUpdateSuperTeamMember回调。 muteTeam: 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 custom: 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 修改自己的群属性后，所有群成员会收到SDK初始化时设置的onUpdateSuperTeamMember回调 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id nickInTeam String &lt;optional&gt; 在群里面的昵称 muteTeam Boolean &lt;optional&gt; 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 custom Boolean &lt;optional&gt; 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 done done 结果回调函数 Returns: Type Void Example nim.updateInfoInSuperTeam({ teamId: '123', // 此参数为可选参数 nickInTeam: '群昵称', // 静音群, 此参数为可选参数 muteTeam: true, // 第三方扩展字段 custom: '{}' done: updateInfoInSuperTeamDone }); function updateInfoInSuperTeamDone(error, obj) { console.log('修改自己的群属性' + (!error?'成功':'失败'), error, obj); } updateInfoInTeam(options) 修改自己的群属性 目前支持修改的属性有这些 nickInTeam: 自己在群里面的群昵称 更新昵称后, 所有其它在线的群成员会收到初始化SDK时传入的onupdateteammember回调。 muteTeam: 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定, 设置之后可以调用接口NIM#notifyForNewTeamMsg来查询是否需要群消息通知 custom: 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id nickInTeam String &lt;optional&gt; 在群里面的昵称 muteTeam Boolean &lt;optional&gt; 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 custom Boolean &lt;optional&gt; 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 done done 结果回调函数 See: 修改别人的群昵称 Returns: Type Void Example nim.updateInfoInTeam({ teamId: '123', // 此参数为可选参数 // nickInTeam: '群昵称', // 静音群, 此参数为可选参数 // muteTeam: true, // 第三方扩展字段 // custom: '{}' done: updateInfoInTeamDone }); function updateInfoInTeamDone(error, obj) { console.log('修改自己的群属性' + (!error?'成功':'失败'), error, obj); } updateLocalMsg(options) 更新本地消息 更新 idClient 对应的本地消息 如果不支持数据库, 算成功 如果对应的消息不存在, 算成功, 返回 null 这些字段只会被更新到本地数据库, 不会被更新到服务器上 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idClient String idClient localCustom String &lt;optional&gt; 自定义字段 done function 结果回调函数, 成功时会额外附上消息 Returns: Type Void Example nim.updateLocalMsg({ idClient: 'p2p-account', localCustom: '{&quot;key&quot;,&quot;value&quot;}', done: updateLocalMsgDone }); function updateLocalMsgDone(error, obj) { console.log('更新本地消息' + (!error?'成功':'失败'), error, obj); } updateLocalSession(options) 更新本地会话 更新 id 对应的本地会话 如果不支持数据库, 算成功 如果对应的会话不存在, 算成功, 返回 null 这些字段只会被更新到本地数据库, 不会被更新到服务器上 目前只允许更新 localCustom Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description id String id localCustom String &lt;optional&gt; 自定义字段 done function 结果回调函数, 成功时会额外附上会话 Returns: Type Void Example nim.updateLocalSession({ id: 'p2p-account', localCustom: '{&quot;key&quot;,&quot;value&quot;}', done: updateLocalSessionDone }); function updateLocalSessionDone(error, obj) { console.log('更新本地会话' + (!error?'成功':'失败'), error, obj); } updateLocalSysMsg(options) 更新本地系统通知 更新 idServer 对应的本地系统通知 如果不支持数据库, 算成功 如果对应的系统通知不存在, 算成功, 返回 null 这些字段只会被更新到本地数据库, 不会被更新到服务器上 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description idServer String idServer status String &lt;optional&gt; 状态 localCustom String &lt;optional&gt; 自定义字段 done function 结果回调函数, 成功时会额外附上系统通知 Returns: Type Void Example nim.updateLocalSysMsg({ idServer: '1234', status: 'bingo', localCustom: '{&quot;key&quot;,&quot;value&quot;}', done: updateLocalSysMsgDone }); function updateLocalSysMsgDone(error, obj) { console.log(error); console.log(obj); console.log('更新本地系统通知' + (!error?'成功':'失败')); } updateMsgPin(options, done) 更新PIN消息的扩展字段 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description msg Object 被PIN的消息对象 pinCustom String &lt;optional&gt; 要更新的PIN扩展字段 done function 结果回调函数，第一个参数是error，代表是否有错 updateMuteStateInTeam(options) 更新群成员禁言状态 更新群成员禁言状态后, 所有群成员会收到一条类型为'updateTeamMute'的群通知消息。此类群通知消息的from字段的值为操作方, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account的值为被禁言的帐号, attach有一个字段members的值为被禁言的群成员列表。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id account String 要修改昵称的群成员的帐号 mute Boolean 是否要禁言 done done 结果回调函数 Returns: Type Void Example nim.updateMuteStateInTeam({ teamId: '123', account: 'a', mute: true, done: updateMuteStateInTeamDone }) function updateMuteStateInTeamDone(error, obj) { console.log('更新群成员禁言状态' + (!error?'成功':'失败'), error, obj); } updateMyInfo(options) 更新我的名片 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description nick String 昵称 avatar String 头像 sign String 签名 gender String 性别 email String 邮箱 birth String 生日 tel String 手机号 custom String 扩展字段 See: 获取用户名片 获取用户名片数组 更新登录用户的名片 Returns: Type Void Example nim.updateMyInfo({ nick: 'newNick', avatar: 'http://newAvatar', sign: 'newSign', gender: 'male', email: 'new@email.com', birth: '1900-01-01', tel: '13523578129', custom: '{type: &quot;newCustom&quot;, value: &quot;new&quot;}', done: updateMyInfoDone }); function updateMyInfoDone(error, user) { console.log('更新登录用户的名片' + (!error?'成功':'失败'), error, user); if (!error) { onUpdateMyInfo(user); } } updateNickInSuperTeam(options) 修改别人的群昵称 所有其它在线的超大群群成员会收到初始化SDK时传入的onUpdateSuperTeamMember回调 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id account String 要修改昵称的超大群群成员的帐号 nickInTeam String 群昵称 done done 结果回调函数 See: 修改自己的群属性 Returns: Type Void Example nim.updateNickInSuperTeam({ teamId: '123', account: 'a2', nickInTeam: '群昵称', done: updateNickInSuperTeamDone }); function updateNickInSuperTeamDone(error, obj) { console.log('修改自己的群属性' + (!error?'成功':'失败'), error, obj); } updateNickInTeam(options) 修改别人的群昵称 所有其它在线的群成员会收到初始化SDK时传入的onupdateteammember回调 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id account String 要修改昵称的群成员的帐号 nickInTeam String 群昵称 done done 结果回调函数 See: 修改自己的群属性 Returns: Type Void Example nim.updateNickInTeam({ teamId: '123', account: 'a2', nickInTeam: '群昵称', done: updateNickInTeamDone }); function updateNickInTeamDone(error, obj) { console.log('修改自己的群属性' + (!error?'成功':'失败'), error, obj); } updateServerSession(options) 更新服务器上某个会话的扩展字段 指更新服务器上会话列表中的会话，不是漫游会话 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description scene String 会话场景 to String 对方账号或群ID extra String 要更新的扩展字段 Example nim.updateServerSession({ scene: 'p2p', to: 'account', extra: 'xxxx', done: function (obj) { console.log('更新会话' + (!error?'成功':'失败'), error, obj); } }); updateSessionsWithMoreRoaming(options) 更新漫游消息不全的会话的漫游时间戳 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description msg Object 完整漫游消息列表中最早的一条消息，即在这条消息之后的本地消息列表是完整的，msg至少应有time、idServer、from、to、scene五个属性 done function updateStickTopSession(options, done) 更新置顶会话的扩展字段 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description id String 会话ID topCustom String &lt;optional&gt; 扩展字段 done function 结果回调函数，第一个参数是error，代表是否有错 updateSuperTeam(options) 更新群 更新超大群后, 所有群成员会收到一条类型为'updateSuperTeam'的群通知消息。此类群通知消息的from字段的值为更新群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为被更新的群信息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id name String &lt;optional&gt; 群名字 avatar String &lt;optional&gt; 群头像 intro String &lt;optional&gt; 群简介 announcement String &lt;optional&gt; 群公告 joinMode String &lt;optional&gt; 超大群加入方式 beInviteMode String &lt;optional&gt; 超大群被邀请模式 custom String &lt;optional&gt; 扩展字段 done done 结果回调函数 Returns: Type Void Example nim.updateSuperTeam({ teamId: '123', name: '群名字', avatar: 'avatar', intro: '群简介', announcement: '群公告', custom: '自定义字段', done: updateSuperTeamDone }); function updateSuperTeamDone(error, team) { console.log('更新群' + (!error?'成功':'失败'), error, team); } updateSuperTeamMembersMute(options) 更新群成员禁言状态 更新群成员禁言状态后, 所有超大群群成员会收到一条类型为'updateSuperTeamMembersMute'的群通知消息。此类群通知消息的from字段的值为操作方, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段account的值为被禁言的帐号, attach有一个字段members的值为被禁言的群成员列表。 更新群成员禁言状态后, 会收到SDK初始化时设置的onUpdateSuperTeamMembersMute回调 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 群id accounts Array 要修改禁言的群成员帐号列表，每次最多修改十个 mute Boolean 是否要禁言 done done 结果回调函数 Returns: Type Void Example nim.updateSuperTeamMembersMute({ teamId: '123', accounts: ['ss', 'aa'], mute: true, done: updateSuperTeamMembersMuteDone }) function updateSuperTeamMembersMuteDone(error, obj) { console.log('更新群成员禁言状态' + (!error?'成功':'失败'), error, obj); } updateSuperTeamMute(options) 超大群禁言 更新超大群的禁言状态后，所有超大群群成员会收到一条类型为'updateSuperTeam'的群通知消息。此类群通知消息的from字段的值为操作方, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段users的值为对应的操作人列表 更新超大群的禁言状态后, 会收到SDK初始化时设置的onUpdateSuperTeam回调 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description teamId String 待禁言群的群id mute String 是否禁言 Returns: Type Void Example nim.updateSuperTeamMute({ teamId: '1027484', mute: true, done: updateSuperTeamMuteDone }) function updateSuperTeamMuteDone (error, obj) { console.log('禁言群' + (!error?'成功':'失败')); } updateTeam(options) 更新群 普通群不可以更新 群加入方式 群被邀请模式 群邀请模式 群信息修改权限 群信息自定义字段修改权限 更新群后, 所有群成员会收到一条类型为'updateTeam'的群通知消息。此类群通知消息的from字段的值为更新群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为被更新的群信息。 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description teamId String 群id name String &lt;optional&gt; 群名字 avatar String &lt;optional&gt; 群头像 intro String &lt;optional&gt; 群简介 announcement String &lt;optional&gt; 群公告 joinMode String &lt;optional&gt; 群加入方式 beInviteMode String &lt;optional&gt; 群被邀请模式 inviteMode String &lt;optional&gt; 群邀请模式 updateTeamMode String &lt;optional&gt; 群信息修改权限 updateCustomMode String &lt;optional&gt; Team.updateCustomMode|群信息自定义字段修改权限} custom String &lt;optional&gt; 扩展字段 done done 结果回调函数 Returns: Type Void Example nim.updateTeam({ teamId: '123', name: '群名字', avatar: 'avatar', intro: '群简介', announcement: '群公告', custom: '自定义字段', done: updateTeamDone }); function updateTeamDone(error, team) { console.log('更新群' + (!error?'成功':'失败'), error, team); } viewImageStripMeta(options) 预览去除图片元信息 只支持通过预览文件或发送文件消息拿到的图片 url, 或者经过其他图片操作后拿到的图片 url 去除元信息后的图片将不包含 EXIF 信息 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description url String 原图 url done done 结果回调函数, 成功时附上 interlace 后的图片 url Returns: Type Void Example var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA='; var stripMetaUrl = nim.viewImageStripMeta({ url: url, strip: true }); Type Definitions publishEvent 发布事件 Example nim.publishEvent({ type: 100000, value: 2, custom: 'hello world', vaildTime: 60, sync: false, done: publishEventDone }); function publishEventDone(error, obj) { console.log('发布事件' + (!error?'成功':'失败'), error, obj); } querySubscribeEventsByAccounts 按账号获取指定事件的订阅关系 Example nim.querySubscribeEventsByAccounts({ type: 100000, accounts: ['cs3'], done: querySubscribeEventDone }); function querySubscribeEventDone(error, obj) { console.log('获取订阅列表' + (!error?'成功':'失败'), error, obj); } querySubscribeEventsByType 查询指定事件的全部订阅关系 Example nim.querySubscribeEventsByType({ type: 100000, done: querySubscribeEventDone }); function querySubscribeEventDone(error, obj) { console.log('获取订阅列表' + (!error?'成功':'失败'), error, obj); } subscribeEvent 订阅事件 Example nim.subscribeEvent({ type: 100000, accounts: ['cs3'], subscribeTime: 70, sync: true, done: subscribeEventDone }); function subscribeEventDone(error, obj) { console.log('订阅事件' + (!error?'成功':'失败'), error, obj); } unSubscribeEventsByAccounts 按账号取消指定事件的订阅关系 Example nim.unSubscribeEventsByAccounts({ type: 100000, accounts: ['cs3'], done: unSubscribeEventDone }); function unSubscribeEventDone(error, obj) { console.log('取消订阅事件' + (!error?'成功':'失败'), error, obj); } unSubscribeEventsByType 取消指定事件的全部订阅关系 Example nim.unSubscribeEventsByType({ type: 100000, done: unSubscribeEventDone }); function unSubscribeEventDone(error, obj) { console.log('取消订阅事件' + (!error?'成功':'失败'), error, obj); } × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:55+08:00 using the DocStrap template. "},"NIMError.html":{"id":"NIMError.html","title":"Class: NIMError","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: NIMError NIMError new NIMError(message, code, event) 错误 Parameters: Name Type Description message String 错误消息 code Number 错误码 event Object 错误事件 Properties Name Type Description callFunc String 调用方法 Members &lt;static, readonly&gt; codeMap :String 错误码错误信息表 Type: String Properties: Name Type Default Description 201 String 客户端版本不对, 需升级sdk 302 String 用户名或密码错误, 请检查appKey和token是否有效, account和token是否匹配 403 String 非法操作或没有权限 404 String 对象(用户/群/聊天室)不存在 405 String 参数长度过长 408 String 客户端请求超时 414 String 参数错误 415 String 服务不可用/没有聊天室服务器可分配 416 String 频率控制 417 String 重复操作 422 String 帐号被禁用 500 String 服务器内部错误 501 String 数据库操作失败 503 String 服务器繁忙 508 String 删除有效期过了 509 String 已失效 7101 String 被拉黑 801 String 群人数达到上限 802 String 没有权限 803 String 群不存在或未发生变化 804 String 用户不在群里面 805 String 群类型不匹配 806 String 创建群数量达到限制 807 String 群成员状态不对 809 String 已经在群里 811 String 强推列表中帐号数量超限 812 String 群被禁言 813 String 因群数量限制，部分拉人成功 814 String 禁止使用群组消息已读服务 815 String 群管理员人数上限 997 String 协议已失效 998 String 解包错误 999 String 打包错误 9102 String 通道失效 9103 String 已经在其他端接听/拒绝过这通电话 11001 String 对方离线, 通话不可送达 13002 String 聊天室状态异常 13003 String 在黑名单中 13004 String 在禁言名单中 13006 String 聊天室处于整体禁言状态,只有管理员能发言 Connect_Failed String 无法建立连接, 请确保能 ping/telnet 到云信服务器; 如果是IE8/9, 请确保项目部署在 HTTPS 环境下 Error_Internet_Disconnected String 网断了 Error_Connection_is_not_Established String 连接未建立 Error_Connection_Socket_State_not_Match String socket状态不对 Error_Timeout String 超时 Param_Error String 参数错误 No_File_Selected String 请选择文件 Wrong_File_Type String 文件类型错误 File_Too_Large String 文件过大 Cross_Origin_Iframe String 不能获取跨域Iframe的内容 Not_Support String 不支持 NO_DB String 无数据库 DB String 数据库错误 Still_In_Team String 还在群里 Session_Exist String 会话已存在 Session_Not_Exist String 会话不存在 Error_Unknown String 未知错误 Operation_Canceled String 操作取消 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"NRTC.html":{"id":"NRTC.html","title":"Class: NRTC","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: NRTC NRTC new NRTC() 请使用 NRTC.getInstance 来初始化音视频环境. Methods &lt;static&gt; destroy() 销毁实例 Parameters: Type Description Void &lt;static&gt; getInstance(options) 此接口为单例模式 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description appkey String &lt;optional&gt; NRTC实例的应用ID debug Boolean &lt;optional&gt; false 是否开启debug模式，默认不开启，debug模式下浏览器会打印log日志 chromeId String &lt;optional&gt; 'gapafbpmfemleaplicdhhcikajbogpkf' 屏幕共享插件id joinChannel(options) 加入频道 Parameters: Name Type Description options Object Properties Name Type Argument Description channelName String 频道名称 uid Number 用户唯一标识（建议五位数以上），如果传入则采用传入值，否则SDK自动生成 scene Number &lt;optional&gt; 通话类型：1:双人、2:多人 accid String &lt;optional&gt; 加入频道的用户名称（可重复） videoDeviceId String &lt;optional&gt; 视频设备ID，不传则默认第一个 audioDeviceId String &lt;optional&gt; 音频设备(输入)ID，不传则默认第一个 joinChannelLiveConfig Object &lt;optional&gt; 加入房间互动直播相关参数 joinChannelRecordConfig Object &lt;optional&gt; 加入房间录制相关参数 Properties Name Type Argument Description isHostSpeaker Boolean &lt;optional&gt; 是否是主讲人 recordAudio Boolean &lt;optional&gt; 是否开启音频实时音录制，0不需要，1需要（默认0） recordVideo Boolean &lt;optional&gt; 是否开启视频实时音录制，0不需要，1需要（默认0） recordType Number &lt;optional&gt; 录制模式，0混单（产生混合录制文件+单独录制文件） 1只混（只产生混合录制文件） 2只单（只产生单独录制文件） joinChannelLiveConfig.liveEnable Boolean &lt;optional&gt; 是否旁路直播 joinChannelLiveConfig.rtmpUrl String &lt;optional&gt; 旁路直播地址 joinChannelLiveConfig.rtmpRecord Boolean &lt;optional&gt; 是否开启互动直播录制 joinChannelLiveConfig.splitMode Number &lt;optional&gt; 推流布局模式 joinChannelLiveConfig.layout String &lt;optional&gt; 自定义推流布局 Returns: Type Promise leaveChannel() 离开频道 Parameters: Type Description Void Returns: Type Promise setPlayVolume(options) 播放音量调整 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description volume Number 音量大小值，取值范围：0-255 account String 账号[WebRTC], 不设置则操作所有远程流 uid String 账号[NRTC], 不设置则操作所有远程流 Returns: volume 实际设置音量大小，取值范围：0-255 Type Number Events addTrack addTrack 添加轨道事件-高级用法 WebRTC适用 Type: object audioVolume audioVolume 当前所有参与通话者的音量大小实时回调通知 WebRTC适用 Type: object auidoMixingEnd auidoMixingEnd 伴音播放完成 WebRTC适用 Type: object deviceAdd deviceAdd 新增设备的通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 deviceRemove deviceRemove 设备移除的通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 deviceStatus deviceStatus 设备状态变化通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 error error 错误事件 Type: object Properties: Name Type Description code number 错误码 name string 错误名 desc string 错误原因 gatewayClosed gatewayClosed 网关连接断开，等待重连/断开 WebRTC适用 Type: object joinChannel joinChannel 收到自己加入频道的通知 WebRTC适用 Type: void leaveChannel leaveChannel 收到用户离开频道的通知 WebRTC适用 Type: void recordStopped recordStopped 音视频录制完成 WebRTC适用 Type: object Properties: Name Type Description id number name string 音视频录制名称 status string 音视频录制状态 type string 音视频录制类型 uid string 音视频录制的uid remoteTrack remoteTrack 收到用户媒体流-高级用法 WebRTC适用 Type: object removeTrack removeTrack 删除轨道事件-高级用法 WebRTC适用 Type: object streamEnded streamEnded 媒体流停止通知 WebRTC适用 Type: array Properties: Name Type Description device object 设备信息 Properties Name Type Description deciveId string 设备ID type string 设备类型 audioIn audioOut video label string 设备名 userJoined userJoined 有用户加入频道的通知 WebRTC适用 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid label string 事件说明 userLeft userLeft 有用户离开频道的通知 WebRTC适用 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid label string 事件说明 code number 用户离开原因 name string 用户离开原因 userStateUpdated userStateUpdated 对方音视频状态更新，如开关音视频设备等 WebRTC适用 Type: object × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"Relation.html":{"id":"Relation.html","title":"Class: Relation","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Relation Relation new Relation() 黑名单/静音名单 Properties: Name Type Description account String 账号 updateTime Long 更新时间 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"Session.html":{"id":"Session.html","title":"Class: Session","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Session Session new Session() Properties: Name Type Argument Description id String 会话ID scene String 场景 to String 聊天对象, 账号或群ID updateTime Long 会话更新的时间 unread Number 未读数 lastMsg Message 此会话的最后一条消息 msgReceiptTime Long &lt;optional&gt; 消息已读回执时间戳, 如果有此字段, 说明此时间戳之前的所有消息对方均已读 目前仅对'p2p'会话起作用 此字段不一定有, 只有对方发送过已读回执之后才会有 调用接口sendMsgReceipt来发送消息已读回执 调用接口isMsgRemoteRead来查询消息是否被对方读过了 isTop Boolean &lt;optional&gt; 是否为被置顶会话 topCustom String &lt;optional&gt; 置顶的扩展字段 localCustom String 本地自定义扩展字段 在支持数据库时可以调用更新本地会话来更新此字段, 此字段只会被更新到本地数据库, 不会被更新到服务器上 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"Signaling.html":{"id":"Signaling.html","title":"Class: Signaling","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Signaling Signaling new Signaling() 请使用 NIM.getInstance 来初始化信令SDK环境. See: NIM初始化 Methods signalingAccept(options) 接受别人的邀请 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id account String 邀请者的账号 requestId String 邀请者邀请的请求id，用于被邀请者回传request_id_作对应的回应操作 offlineEnabled Boolean 是否存离线通知，默认false attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 autoJoin Boolean 是否自动加入房间，默认不打开，打开后后续参数uid、joinAttachExt有效 uid String 自己在频道中对应的uid，大于零有效，无效时服务器会分配随机唯一的uid，可缺省 joinAttachExt String 加入频道的自定义扩展信息，将在加入频道通知中带给其他频道成员，可缺省 Returns: Type Promise signalingCall(options) 用于用户新开一个频道并邀请对方加入频道 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description type Number 通话类型,1:音频;2:视频;3:其他 channelName String 频道名，可缺省 ext String 频道的自定义扩展信息，可缺省 uid String 自己在频道中对应的uid，大于零有效，无效时服务器会分配随机唯一的uid，可缺省填0 account String 被邀请者的账号 requestId String 邀请者邀请的请求id，用于被邀请者回传request_id_作对应的回应操作 offlineEnabled Boolean 是否存离线通知，默认0 attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 pushInfo String 推送信息 signalingCancel(options) 取消邀请别人加入频道 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id，必填 account String 对方accid，必填 requestId String 邀请者邀请的请求id，用于取消对应的请求消息，必填 offlineEnabled Boolean 是否存离线通知，默认false attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 Returns: Type Promise signalingClose(options) 独立呼叫信令-关闭频道.该接口可以由创建者和频道内所有成员调用，无权限限制。调用该接口成功后，其他所有频道内的成员都回收到频道结束的通知，被动离开频道。此时其他成员不需要调用离开接口，也不会收到别人的离开通知。 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id，必须 offlineEnabled Boolean 是否存离线通知，默认false attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 Returns: Type Promise Example nim.signalingClose({ channelId: 'qq', offlineEnabled: true }); signalingCreate(options) 独立呼叫信令-创建频道 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description type Number 通话类型,1:音频;2:视频;3:其他，必须 channelName String 频道名，可缺省 ext String 频道的自定义扩展信息，可缺省 Returns: Type Promise Example nim.signalingCreate({ type: 1, channelName: '11' }); signalingCreateAndJoin(options) 如果不存在房间则创建并加入，如果存在则加入 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description type Number 通话类型,1:音频;2:视频;3:其他 channelName String 频道名，可缺省 ext String 频道的自定义扩展信息，可缺省 uid String 自己在频道中对应的uid，大于零有效，无效时服务器会分配随机唯一的uid，可缺省填0 offlineEnabled Boolean 是否存离线通知，默认0 attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 signalingDelay(options) 独立呼叫信令-延迟频道有效期（同时延迟操作者和房间） Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id，必须 Returns: Type Promise Example nim.signalingDelay({ channelId: 'qq', }); signalingGetChannelInfo(options) 独立呼叫信令-根据channelName查询房间信息，包括channelId, members Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelName String 频道名，可缺省 ext String 频道的自定义扩展信息，可缺省 Returns: Type Promise Example nim.signalingGetChannelInfo({ channelName: '11' }).then(function(channelInfo){ console.log('channelInfo:',channelInfo) console.log('房间id',channelInfo.channelId) let members = channelInfo.members; console.log('房间人数为':memner.length) console.log('房间内的用户列表':memner) }); signalingInvite(options) 邀请别人加入频道 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id，必须 account String 对方accid，必须 requestId String 必须，邀请者邀请的请求id，需要邀请者填写，之后取消邀请、拒绝、接受需要复用该requestId offlineEnabled Boolean 是否存离线通知，默认false attachExt String 邀请者附加的自定义信息，透传给被邀请者，可缺省 pushInfo Object 推送信息 pushInfo.needPush Boolean 是否需要推送，默认false pushInfo.needBadge Boolean 是否计入未读计数,默认true pushInfo.pushTitle String 推送标题 pushInfo.pushContent String 推送内容 pushInfo.pushPayload String 推送自定义字段,必须JSON Returns: Type Promise signalingJoin(options) 独立呼叫信令-加入频道 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id,必须 uid Number 自己在频道中对应的uid，大于零有效，无效时服务器会分配随机唯一的uid offlineEnabled Boolean 是否存离线通知，默认false attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 Returns: Type Promise signalingLeave(options) 独立呼叫信令-离开频道 Parameters: Name Type Description options Object 参数对象，必填 Properties Name Type Description channelId String 对应的频道id offlineEnabled Boolean 是否存离线通知，默认false attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 Returns: Type Promise signalingMarkMsgRead(options) 标记信令消息已读 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description msgid Array.&lt;String&gt; 需要标记的已读消息id Returns: Type Promise signalingReject(options) 拒绝别人的邀请 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description channelId String 对应的频道id account String 邀请者的账号 requestId String 邀请者邀请的请求id，用于被邀请者回传request_id_作对应的回应操作 offlineEnabled Boolean 是否存离线通知，默认false attachExt String 操作者附加的自定义信息，透传给其他人，可缺省 Returns: Type Promise × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"SuperTeam.html":{"id":"SuperTeam.html","title":"Class: SuperTeam","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: SuperTeam SuperTeam new SuperTeam() 超大群 Properties: Name Type Description teamId String 群Id type String 群类型 预留字段 name String 群名字 avatar String 群头像 intro String 群简介 announcement String 群公告 joinMode String 超大群加入方式 owner String 群主 level Number 群人数上限 memberNum Number 群成员数量 memberUpdateTime Number 群成员最后更新时间 createTime Number 群创建时间 updateTime Number 群最后更新时间 custom String 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 serverCustom String 第三方服务器扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 valid Boolean 是否有效, 解散后该群无效 validToCurrentUser Boolean 该群是否对当前用户有效, 如果无效, 那么说明被踢了 mute Boolean 是否禁言, muteType Boolean none: 都不禁言; normal: 普通成员禁言，即普通成员不能发消息; all: 全体禁言，即所有成员均不能发消息禁言模式 Members &lt;static, readonly&gt; beInviteMode :String 群被邀请模式 'needVerify' (需要邀请方同意) 'noVerify' (不需要邀请方同意) Type: String &lt;static, readonly&gt; joinMode :String 群加入方式 'noVerify' (不需要验证) 'needVerify' (需要验证) 'rejectAll' (禁止任何人加入) Type: String Methods &lt;static&gt; fillProperties() 升级数据库后, 有些字段老的记录是没有的, 此方法用于补全这些字段 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"SuperTeamMember.html":{"id":"SuperTeamMember.html","title":"Class: SuperTeamMember","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: SuperTeamMember SuperTeamMember new SuperTeamMember() 群成员 Properties: Name Type Description teamId Number 群ID account String 帐号 type String 群成员类型 nickInTeam String 在群里面的昵称 muteTeam Boolean 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 joinTime Number 入群时间 updateTime Number 更新时间 active Boolean 普通群拉人进来的时候, 被拉的人处于未激活状态, 未激活状态下看不到这个群, 当有人说话后自动转为激活状态, 能看到该群 mute Boolean 是否被禁言 custom String 第三方扩展字段 Members &lt;static, readonly&gt; type :String 超大群成员类型 'normal' (普通成员) 'owner' (群主) 'manager' (管理员) Type: String Methods &lt;static&gt; fillProperties() 升级数据库后, 有些字段老的记录是没有的, 此方法用于补全这些字段 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"support.html":{"id":"support.html","title":"Namespace: support","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Namespace: support support NIM support 工具对象, 通过 NIM.support 来获取此工具的引用 Members &lt;static&gt; db :Boolean 是否支持数据库 Type: Boolean × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"SystemMessage.html":{"id":"SystemMessage.html","title":"Class: SystemMessage","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: SystemMessage SystemMessage new SystemMessage() 系统通知 系统通知分为两种 内建系统通知 目前所有的内建系统通知都是与高级群相关的通知, 某些群操作后相关的群成员会收到相应的系统通知。 内建系统通知与群通知消息的区别是系统通知是发给单人的通知, 群通知消息是发给所有群成员的消息。 自定义系统通知 开发者可以向其他用户或群发送自定义系统通知 自定义系统通知和自定义消息的区别如下 自定义消息属于消息, 会存储在云信的消息数据库中, 需要跟其他消息一同展现给用户。 自定义系统通知属于系统通知, 用于第三方通知自己, 不会存储在云信的数据库中, SDK不会解析这些通知, SDK仅仅负责传递这些通知。 请参考初始化SDK时传入的onofflinesysmsgs、onofflinecustomsysmsgs、onsysmsg、oncustomsysmsg等回调。 Properties: Name Type Argument Description time Number 时间戳 type String &lt;optional&gt; 系统通知类型 from String 系统通知的来源, 账号或者群ID to String 系统通知的目标, 账号或者群ID idServer String &lt;optional&gt; 内建系统通知的 idServer read Boolean &lt;optional&gt; 内建系统通知是否已读 category String &lt;optional&gt; 内建系统通知的种类 state String &lt;optional&gt; 内建系统通知的state error NIMError &lt;optional&gt; 内建系统通知的state 为 'error' 时, 此字段包含错误的信息 localCustom String &lt;optional&gt; 内建系统通知的本地自定义扩展字段 在支持数据库时可以调用更新本地系统通知来更新此字段, 此字段只会被更新到本地数据库, 不会被更新到服务器上 ps String &lt;optional&gt; 内建系统通知的附言 attach Object &lt;optional&gt; 内建系统通知的附加信息, 参考系统通知类型来查看不同类型的系统通知对应的附加信息 Properties Name Type Argument Description custom String &lt;optional&gt; 附加消息的扩展字段, 可能没有 scene String &lt;optional&gt; 自定义系系统通知的场景, 参考消息场景 content String &lt;optional&gt; 自定义系统通知的内容 isPushable Boolean 是否需要推送 apnsText String &lt;optional&gt; 自定义系统通知的推送文案, 仅对接收方为iOS设备有效 pushPayload String &lt;optional&gt; 自定义系统通知的推送属性 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 needPushNick Boolean 是否需要推送昵称 sendToOnlineUsersOnly Boolean &lt;optional&gt; 自定义系统通知是否只发送给在线用户。 true时只发送给在线用户, 适合发送即时通知, 比如正在输入。 false时假如目标用户或群不在线, 会在其上线后推送过去。 该参数只对点对点自定义系统通知有效, 对群自定义系统通知无效, 群自定义系统通知只会发给在线的群成员, 不会存离线。 cc Boolean 自定义系统通知是否抄送 Members &lt;static, readonly&gt; category :String 内建系统通知的种类 'team' 'friend' Type: String &lt;static, readonly&gt; state :String 内建系统通知的状态 'init': 未处理状态 'passed': 已通过 'rejected': 已拒绝 'error': 错误 Type: String &lt;static, readonly&gt; type :String 系统通知类型 'addFriend' 直接加某个用户为好友后, 对方不需要确认, 直接成为当前登录用户的好友。 对方会收到一条类型为'addFriend'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为接收方的账号。 'applyFriend' 申请加某个用户为好友后, 对方会收到一条类型为'applyFriend'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为接收方的账号, 用户在收到好友申请后, 可以选择通过或者拒绝好友申请。 如果通过好友申请, 那么申请方会收到一条类型为'passFriendApply'的系统通知, 此类群通知消息的from字段的值为通过方的帐号, to字段的值为申请方的账号。 如果拒绝好友申请, 那么申请方会收到一条类型为'rejectFriendApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为申请方的账号。 'passFriendApply' 见 'applyFriend' 'rejectFriendApply' 见 'applyFriend' 'deleteFriend' 删除好友后, 被删除的人会收到一条类型为'deleteFriend'的系统通知, 此类系统通知的from字段的值为删除方的帐号, to字段的值为被删除方的账号。 'teamInvite' 高级群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'teamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 'rejectTeamInvite' 见'teamInvite' 'applyTeam' 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applyTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。 'rejectTeamApply' 见'applyTeam' 'applySuperTeam' 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applySuperTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passSuperTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectSuperTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群。 'rejectSuperTeamApply' 见'applySuperTeam' 'superTeamInvite' 超大群的群主和管理员在邀请成员加入群（通过操作创建群或拉人入群）之后, 被邀请的人会收到一条类型为'superTeamInvite'的系统通知, 此类系统通知的from字段的值为邀请方的帐号, to字段的值为对应的群ID, 此类系统通知的attach有一个字段team的值为被邀请进入的超大群, 被邀请的人可以选择接受邀请或者拒绝邀请。 如果接受入群邀请, 那么该群的所有群成员会收到一条类型为'acceptSuperTeamInvite'的群通知消息, 此类群通知消息的from字段的值为接受入群邀请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的超大群对象, attach有一个字段members的值为接收入群邀请的群成员列表。 如果拒绝入群邀请, 那么邀请你的人会收到一条类型为'rejectSuperTeamInvite'的系统通知, 此类系统通知的from字段的值为拒绝入群邀请的人的帐号, to字段的值为对应的群ID。 'rejectSuperTeamInvite' 见'superTeamInvite' 'deleteMsg' 撤回消息后, 消息接收方会收到一条类型为'deleteMsg'的系统通知, 此类系统通知的 msg 为被删除的消息的部分字段。如果是群消息, 那么群里的所有人都会收到这条系统通知. 如果同时在多个端登录了同一个账号, 那么其它端也会收到这条系统通知. 'custom' 自定义系统通知 Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"Team.html":{"id":"Team.html","title":"Class: Team","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Team Team new Team() 群 Properties: Name Type Description teamId String 群Id type String 群类型 name String 群名字 avatar String 群头像 intro String 群简介 announcement String 群公告 joinMode String 群加入方式, 仅限高级群 beInviteMode String 群被邀请模式, 仅限高级群 inviteMode String 群邀请模式, 仅限高级群 updateTeamMode String 群信息修改权限, 仅限高级群 updateCustomMode String 群信息自定义字段修改权限, 仅限高级群 owner String 群主 level Number 群人数上限 memberNum Number 群成员数量 memberUpdateTime Number 群成员最后更新时间 createTime Number 群创建时间 updateTime Number 群最后更新时间 custom String 第三方扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 serverCustom String 第三方服务器扩展字段, 开发者可以自行扩展, 建议封装成JSON格式字符串 valid Boolean 是否有效, 解散后该群无效 validToCurrentUser Boolean 该群是否对当前用户有效, 如果无效, 那么说明被踢了 mute Boolean 是否禁言, 禁言状态下普通成员不能发送消息, 创建者和管理员可以发送消息 muteType Boolean none: 都不禁言; normal: 普通成员禁言，即普通成员不能发消息; all: 全体禁言，即所有成员均不能发消息禁言模式 Members &lt;static, readonly&gt; beInviteMode :String 群被邀请模式 'needVerify' (需要邀请方同意) 'noVerify' (不需要邀请方同意) Type: String &lt;static, readonly&gt; inviteMode :String 群邀请模式 'manager' (只有管理员/群主可以邀请他人入群) 'all' (所有人可以邀请他人入群) Type: String &lt;static, readonly&gt; joinMode :String 群加入方式 'noVerify' (不需要验证) 'needVerify' (需要验证) 'rejectAll' (禁止任何人加入) Type: String &lt;static, readonly&gt; type :String 群类型 'normal' (普通群) 'advanced' (高级群) 普通群没有群简介/群公告/群加入方式/群被邀请模式/群邀请模式/群信息修改权限/群信息自定义字段修改权限 Type: String &lt;static, readonly&gt; updateCustomMode :String 群信息自定义字段修改权限 'manager' (只有管理员/群主可以修改) 'all' (所有人可以修改) Type: String &lt;static, readonly&gt; updateTeamMode :String 群信息修改权限 'manager' (只有管理员/群主可以修改) 'all' (所有人可以修改) Type: String Methods &lt;static&gt; fillProperties() 升级数据库后, 有些字段老的记录是没有的, 此方法用于补全这些字段 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"TeamMember.html":{"id":"TeamMember.html","title":"Class: TeamMember","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: TeamMember TeamMember new TeamMember() 群成员 Properties: Name Type Description teamId Number 群ID account String 帐号 type String 群成员类型 nickInTeam String 在群里面的昵称 muteTeam Boolean 是否关闭此群的消息提醒, true表示关闭提醒, 但是SDK仍然会收到这个群的消息, SDK只是记录这个设置, 具体根据这个设置要执行的操作由第三方APP决定 joinTime Number 入群时间 updateTime Number 更新时间 active Boolean 普通群拉人进来的时候, 被拉的人处于未激活状态, 未激活状态下看不到这个群, 当有人说话后自动转为激活状态, 能看到该群 mute Boolean 是否被禁言 custom String 第三方扩展字段 Members &lt;static, readonly&gt; type :String 群成员类型 'normal' (普通成员) 'owner' (群主) 'manager' (管理员) Type: String Methods &lt;static&gt; fillProperties() 升级数据库后, 有些字段老的记录是没有的, 此方法用于补全这些字段 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"User.html":{"id":"User.html","title":"Class: User","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: User User new User() Properties: Name Type Description account String 账号 nick String 昵称 avatar String 头像 sign String 签名 gender String 性别 email String 邮箱 birth String 生日 tel String 电话号码 custom String 扩展字段 推荐使用JSON格式构建, 非JSON格式的话, Web端会正常接收, 但是会被其它端丢弃 createTime Long 创建时间 updateTime Long 更新时间 Members &lt;static, readonly&gt; gender :String 性别 'unknown' (未知) 'male' (男) 'female' (女) Type: String × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"global.html#util":{"id":"global.html#util","title":"Namespace: util","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Namespace: util util NIM util 工具方法, 通过 NIM.util 来获取此工具的引用 Methods &lt;static&gt; cutObjArray(base, arr1, arr2, options) 从数组里面去除某些项 Parameters: Name Type Description base Array 基数组 arr1 Array.&lt;Object&gt; 待去除的数组 arr2 Array.&lt;Object&gt; 待去除的数组 options Object 配置参数 Properties Name Type Argument Default Description keyPath String &lt;optional&gt; 'id' keyPath, 去重的字段, 默认为 id Returns: 去除后的数组 Type Array Example var olds = [ { account: 'a' }, { account: 'b' }, { account: 'c' } ]; var invalids = [ { account: 'b' } ]; var options = { keyPath: 'account' }; var array = NIM.util.cutObjArray(olds, invalids, options); // array 为 // [ // { account: 'a' }, // { account: 'c' } // ] &lt;static&gt; findObjInArray(array, options) 在数组里面找 keyPath 对应的属性值为 value 的元素 数组的每一项均为对象, 并且必须有由 keyPath 指定的属性 Parameters: Name Type Description array Array.&lt;Object&gt; 待查找的数组 options Object 查找的条件 Properties Name Type Argument Description keyPath String &lt;optional&gt; keyPath, 匹配的字段, 默认为 'id' value Anything &lt;optional&gt; 匹配的值 Returns: 找到的元素, 或者 null Type Object Example var array = [ {name: 'tom'}, {name: 'jack'}, {name: 'dan'} ]; var obj = NIM.util.findObjInArray(array, { keyPath: 'name', value: 'jack' }); // obj 为 {name: 'jack'} &lt;static&gt; guid() 生成一个 32 位的 GUID/UUID Returns: guid/uuid Type String &lt;static&gt; mergeObjArray(arr1, arr2 [, options]) 合并数组 此方法接收不定量参数 最后一个参数如果是对象, 那么就是配置参数 除了配置参数之外, 所有其它的参数都必须是数组, 它们都会被合并 如果两个对象keyPath字段对应的属性值相同, 后面的对象会被合并到前面的对象 Parameters: Name Type Argument Description arr1 Array.&lt;Object&gt; 待合并的数组 arr2 Array.&lt;Object&gt; 待合并的数组 options Object &lt;optional&gt; 配置参数 Properties Name Type Argument Default Description keyPath String &lt;optional&gt; 'id' keyPath, 去重的字段, 默认为 id notSort Boolean &lt;optional&gt; 是否要排序, 默认false要排序, 传true则不排序 compare function &lt;optional&gt; 决定排序的方法, 如果不提供, 那么使用 NIM.naturalSort 进行排序 sortPath String &lt;optional&gt; sortPath, 排序用的字段, 默认为 keyPath insensitive Boolean &lt;optional&gt; 排序时是否不区分大小写, 默认区分 desc Boolean &lt;optional&gt; 是否逆序, 默认正序 Returns: 合并并排序后的数组 Type Array.&lt;Object&gt; Example var arr1 = [ { account: 'tom', name: 'T' } ]; var arr2 = [ { account: 'adam' }, { account: 'tom', name: 'T-new' } ]; var options = { keyPath: 'account' }; var resultArray = NIM.util.mergeObjArray(arr1, arr2, options); // resultArray为 // [ // {account: 'adam'}, // {account: 'tom', name: 'T-new'}, // ] &lt;static&gt; sortObjArray(array [, options]) 返回排序后的数组 数组的每一项都为 Object, 并且必须有由 sortPath 指定的属性 Parameters: Name Type Argument Description array Array.&lt;Object&gt; 待排序的数组 options Object &lt;optional&gt; 配置参数 Properties Name Type Argument Description compare function &lt;optional&gt; 决定排序的方法, 如果不提供, 那么使用 NIM.naturalSort 进行排序 sortPath String &lt;optional&gt; sortPath, 排序用的字段, 默认为 id insensitive Boolean &lt;optional&gt; 排序时是否不区分大小写, 默认区分 desc Boolean &lt;optional&gt; 是否逆序, 默认正序 Returns: 排序后的数组 Type Array.&lt;Object&gt; Example var array = [ { account: 'b' }, { account: 'a' } ]; var options = { sortPath: 'account' }; NIM.util.sortObjArray(array, options); // array 为 //[ // { account: 'a' }, // { account: 'b' } //] × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"Video.html":{"id":"Video.html","title":"Class: Video","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: Video Video new Video() 视频对象 Properties: Name Type Description url String url name String 名字 size Number 大小, 单位byte md5 String md5 ext String 扩展名 dur Number 长度, 单位ms w Number 宽, 分辨率, 单位px h Number 高, 分辨率, 单位px See: 图片对象 音频对象 文件对象 地理位置对象 × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"WebRTC.html":{"id":"WebRTC.html","title":"Class: WebRTC","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: WebRTC WebRTC new WebRTC() 请使用 WebRTC.getInstance 来初始化音视频环境. Methods &lt;static&gt; getInstance(options) 此接口为单例模式 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description nim NIM NIM 实例 container Node 播放自己视频画面的dom容器节点，如div、span等非流媒体节点，可为null，可通过后续播放操作时再传入 remoteContainer Node 播放对方画面的dom容器节点，如div、span等非流媒体节点，可为null，可通过后续播放操作时再传入 debug Boolean &lt;optional&gt; false 是否开启debug模式，默认不开启，debug模式下浏览器会打印log日志 &lt;static&gt; setPlayVolume() 播放音量调整 Parameters: Name Type Description options.volume Number 音量大小值，取值范围：0-255 options.account String 账号[WebRTC], 不设置则操作所有远程流 options.uid String 账号[NRTC], 不设置则操作所有远程流 Returns: volume 实际设置音量大小，取值范围：0-255 Type Number call(options) 双人通话：主叫发起通话 Parameters: Name Type Description options Object 请求参数对象 Properties Name Type Description type Number 通话类型 webrtcEnable Boolean 是否支持WebRTC方式接入，可选，默认为不开启 account String 对方账号 pushConfig Object 推送配置 sessionConfig Object 通话配置 Returns: Type Promise changeRoleToAudience() 多人通话：改变自己在房间中的角色（观众）:只允许接收其他人的音频和视频，不能发送自己的音频和视频 Returns: Type Promise changeRoleToPlayer() 多人通话：改变自己在房间中的角色（互动者）:可以发送自己的音频和视频给房间中的其他人 Returns: Type Promise control(controlRequestParam) 双人通话：通话过程中发送控制指令: 例如开关摄像头、麦克风，音视频互相切换，没有可用设备 Parameters: Name Type Description controlRequestParam Object Properties Name Type Description channelId String 当前会话的唯一ID值 command Number 会话控制指令 Returns: Type NULL createChannel(options) 多人通话：创建房间 Parameters: Name Type Description options Object 配置对象 Properties Name Type Description channelName String 房间房号，可以任意英文字母和数组的组合 custom String 扩展字段，在通话的创建和加入之间传递自定义的额外信息 webrtcEnable Boolean 如果需要与 WebRTC 客户端互通，需要指定 WebRTC 兼容开关 webrtcEnable 为 true, 如果没有 WebRTC 客户端参与, 不要打开该开关。 createChannelRequestParam.rtmpConf Object 推流配置参数。 Returns: Type Promise destroy() 实例销毁 detectNetworkStatus(options) 探测网络状况 Parameters: Name Type Description options Object 参数对象 Properties Name Type Argument Description detectTime Number 探测时间建议20s以上；sdk内部最少5秒 fromDevice Boolean &lt;optional&gt; 是否通过本地摄像头作为探测源(优先级1) imageNode Element &lt;optional&gt; 标签节点，传入该参数，则可以使用本地图片作为探测源(优先级2) videoNode Element &lt;optional&gt; 标签节点，传入该参数，则可以使用已知视频播放作为探测源(优先级3) getDevices(type) 获取设备列表 Parameters: Name Type Description type Number 设备类型，详见： DEVICE_TYPE Returns: 未传type时为Object,传type时为Array Type Promise getLocalAudioVolume() 得到mic采集到的音量 Returns: Type number hangup() 双人通话：挂断通话 Returns: Type NULL initSignal() 初始化信令 信令通道初始化完毕之后, 开发者可以启用音视频相关的 UI, 比如说展示呼叫别人的按钮 信令通道初始化失败的时候, 请展示错误并禁用所有音视频相关的 UI 当信令通道断开时, 会触发 signalClosed 事件 注：该方法目前是个假的方法，直接返回Promise.resolve()，原因是为了和agent方案保持一致 Returns: Type Promise joinChannel(options) 多人通话：加入房间 Parameters: Name Type Description options Object 配置对象 Properties Name Type Description channelName String 房间房号，可以任意英文字母和数组的组合 role Number 个人角色，WebRTC.ROLE_PLAYER表示互动者，WebRTC.ROLE_AUDIENCE表示观众 type Number 房间通话类型，音频、视频 sessionConfig Object 通话配置 Returns: Type Promise leaveChannel() 多人通话：离开房间 Returns: Type Promise response(options) 双人通话：被叫响应通话 Parameters: Name Type Description options Object 配置对象 Properties Name Type Description accepted Boolean 回应类型 beCalledInfo Object 呼叫信息，必传，该值可以在 beCalling 回调事件中获取(即BeCallingEvent) sessionConfig Object 通话配置内容，具体信息请参考上面的主叫发起通话时的参数注解 channelId String 推送配置 command Number 通话控制命令 Returns: Type Promise resumeLocalStream() 恢复本地视频流 Returns: Type NULL resumeRemoteStream(account) 恢复所有远程视频流 Parameters: Name Type Description account String Returns: Type NULL setAudioBlack(account) 设置指定用户静音 Parameters: Name Type Description account String Returns: Type NULL setAudioStart(options) 绕过IM登录，直接开启音视频通话,需传入im登录信息，此接口目前仅适用于 白板+音视频 场景注意此入口参数为白板服务端透传，无需用户手动拼接 Parameters: Name Type Description options Object 请求参数对象 Properties Name Type Description channelId Number 房间ID netcallType number 通话类型 rtcServerMap Object rtc服务端地址列表 accountUidMap object account与uid的映射表 Returns: Type Promise setAudioStart(account) 开启音量 Parameters: Name Type Description account String Returns: Type NULL setIsPrivateDeployment(isPrivateDeployment) 设置是否使用音视频代理 Parameters: Name Type Description isPrivateDeployment Boolean Returns: Type NULL setMixConf(param) 视频和演示混频 Parameters: Name Type Description param Object 配置对象 Properties Name Type Description enableMixVideo Boolean 是否启动混频功能 videoLayout Number 混频时摄像头的布局 videoCompressSize Number 混频时摄像头压缩的比例 setPrivateDeploymentConf() 配置音视频代理域名 Parameters: Name Type Description privateDeploymentConf.wssServer String 媒体网关服务器域名 privateDeploymentConf.turnServer String 媒体中转服务器域名 Returns: Type NULL setVideoViewRemoteSize(options) 设置对端视频画面大小 Parameters: Name Type Description options Object 配置对象 Properties Name Type Description account String 账号 width Number 宽度 height Number 高度 cut Boolean 是否裁剪 Returns: Type Promise setVideoViewSize(setVideoViewSizeRequestParam) 设置本端视频画面大小 Parameters: Name Type Description setVideoViewSizeRequestParam Object 配置对象 Properties Name Type Description width Number 宽度 height Number 高度 cut Boolean 是否裁剪 Returns: Type Promise startLocalStream(node) 开启本地画面 Parameters: Name Type Description node DOM 本地画面待渲染的DOM节点 Returns: Type Promise startRecordMp4() 结束视频录制(6.2.0版本开始废弃该接口)推荐使用 stopMediaRecording Deprecated: Yes Returns: Type Promise startRecordMp4(account) 开启视频录制(6.2.0版本开始废弃该接口)推荐使用 startMediaRecording Parameters: Name Type Description account String 录制的目标账号，不传或者为空时，默认录制自己 Deprecated: Yes Returns: Type Promise startRemoteStream(startRemoteStreamRequestParam) 开启对方画面 Parameters: Name Type Description startRemoteStreamRequestParam Object 配置对象 Properties Name Type Description account String 目标账号 node DOM 视频显示的DOM容器 poster String 无视频流时的默认视频海报图片 Returns: Type Promise startRtc() 开启RTC连接 Returns: Type Promise stopLocalStream() 关闭本地画面 Returns: Type NULL stopRecordAac() 结束混音录制(6.2.0版本开始废弃该接口)推荐使用 stopMediaRecording Deprecated: Yes Returns: Type Promise stopRemoteStream(account) 关闭对方画面 Parameters: Name Type Description account String 目标账号 Returns: Type NULL suspendLocalStream() 暂停本地视频流 Returns: Type NULL suspendRemoteStream(account) 挂起所有远程视频流 Parameters: Name Type Description account String Returns: Type NULL switchAudioToVideo() 双人通话：切换视频模式 Returns: Type NULL switchVideoToAudio() 双人通话：切换音频模式 Returns: Type NULL Events beCalling beCalling 收到呼叫请求 Type: object Properties: Name Type Description channelId number 加入频道ID account number 用户账号(WebRTC有意义) uid string 用户uid callAccepted callAccepted 主叫收到被叫应答通知: 接受 Type: object callerAckSync callerAckSync 其他端已处理的通知 Type: object callRejected callRejected 主叫收到被叫应答通知: 拒绝 Type: object control control 通话进行中收到对端的控制通知 Type: object hangup hangup 收到挂断通知 Type: object sessionDuration sessionDuration 通话计时完成的通知 Type: object × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"WebRTC_NRTC.html":{"id":"WebRTC_NRTC.html","title":"Class: WebRTC/NRTC","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: WebRTC/NRTC WebRTC/NRTC 音视频操作类，WebRTC与NRTC公共方法均会放到本文档中，其个性化使用方法请参考WebRTC/NRTC独立文档 new WebRTC/NRTC() 请使用 WebRTC.getInstance 来初始化音视频环境.(NRTC为：NRTC.getInstance) Methods cleanLogFile() 清除保存的日志。 Returns: Type Promise cleanMediaRecording(options) 清除录制的音视频 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description recordId String 录制id，可以通过listMediaRecording接口获取 Returns: Type Promise downloadMediaRecording(param, options) 下载录制的音视频 Parameters: Name Type Description param Object 参数对象 options Object 参数对象 Properties Name Type Description recordId String 录制id，可以通过listMediaRecording接口获取 Returns: Type Promise downLogFile() 下载保存的日志。 Returns: Type Promise enableLocalAudio(enable) 开启/禁止本地音频(关闭设备停止推流/启用开始推流) Parameters: Name Type Description enable Boolean true:开启音频功能 false:关闭音频功能，并关闭麦克风。 Returns: Type Promise enableLocalVideo(enable) 开启/禁止本地视频(关闭设备停止推流/启用开始推流) Parameters: Name Type Description enable Boolean true:开启视频功能 false:关闭视频功能，并关闭摄像头。 Returns: Type Promise getAccount() 获取当前登录的 IM 账号 Returns: Type String getAudioMixingPlayedTime() 获取伴音的播放进度 Returns: Type Number getAudioMixingTotalTime() 获取伴音文件的总时长 Returns: Type Number getCaptureVolume() 采集音量查询 Parameters: Type Description Void Returns: volume 音量大小，取值范围：0-255 Type Number getCaptureVolume(accountList) 获取当前账号成员的音视频的播放状态 Parameters: Name Type Description accountList Array accoutList，账号列表，可以为空，表示当前房间里所有成员 Returns: 播放状态 Type Object getChannelInfo() 获取当前所在频道信息 Returns: channelId,uid,account Type Object getDevices(options) 获取设备列表 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description type Number 设备类型 Returns: 未传type时为Object,传type时为Array Type Promise getPlayVolume(options) 播放音量查询 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 账号[WebRTC] uid String 账号[NRTC] Returns: volume 音量大小，取值范围：0-255 Type Number getUid() 获取当前登录的 uid Returns: Type String isSupportWebrtc() 是否支持webrtc Returns: Type Boolean listMediaRecording() 枚举录制的音视频 Returns: Type Promise muteLocalAudioStream(options) 开关本地音频发送 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description mute Boolean true:不发送本地音频流，false:发送本地音频流（默认） Returns: Type Promise muteLocalVideoStream(options) 开关本地视频发送 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description mute Boolean true:不发送本地视频流，false:发送本地视频流（默认） Returns: Type Promise muteRemoteAudioStream(options) 接收／停止接收指定音频流。 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description account Number 指定用户id[WebRTC] uid Number 指定用户id[NRTC] mute Boolean true:停止接收指定音频流；false:继续接收指定音频流（默认）。 Returns: Type Promise muteRemoteVideoStream(options) 接收／停止接收指定视频流。 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description account Number 指定用户id[WebRTC] uid Number 指定用户id[NRTC] mute Boolean true:停止接收指定视频流；false:继续接收指定视频流（默认）。 Returns: Type Promise openLocalAudio(options) 开启本地麦克风(暂不开放) Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description videoDeviceId String &lt;optional&gt; 视频设备ID，不传则默认第一个 Returns: Type Promise pauseAudioMixing() 暂停本地语音伴音。 Returns: Type Promise playMediaRecording(options) 播放视频录制 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description recordId String 录制id，可以通过listMediaRecording接口获取 view Element 音频或者视频画面待渲染的DOM节点，如div、span等非流媒体节点 Returns: Type Promise rate(options) 给某次通话评分 Parameters: Name Type Description options Object Properties Name Type Argument Description cid String uid String rate Number 1-5,整数 description String &lt;optional&gt; 描述 resumeAudioMixing() 恢复本地语音伴音，伴音文件将从暂停时位置开始播放。 Returns: Type Promise setAudioMixingPlayTime(playStartTime) 设置伴音播放的位置，单位为ms Parameters: Name Type Description playStartTime Number 伴音播放的位置 Returns: Type Promise setAudioMixingVolume(volume) 设置伴音的音量 Parameters: Name Type Description volume Number 伴音文件的音量 Returns: Type Promise setAudioProfile(options) 设置音频属性 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description highAudio Boolean 高清语音 Returns: Type Void setCaptureVolume(volume) 采集音量调整 Parameters: Name Type Description volume Number 音量大小，取值范围：0-255 Returns: volume 实际设置音量大小，取值范围：0-255 Type Number setClientRole(role) 设置场景下的用户角色多人通话：改变自己在房间中的角色（互动者），是否可以发送自己的音频和视频给房间中的其他人 Parameters: Name Type Description role Number 用户角色：0主播，1观众（默认0） Returns: Type Promise setLocalRenderMode(options) 设置本端视频画面大小 Parameters: Name Type Description options Object 配置对象 Properties Name Type Description width Number 宽度 height Number 高度 cut Boolean 是否裁剪 Returns: Type Void setLocalVideoRenderer(options) 设置本地视图。 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description view Element 本地画面待渲染的DOM节点，如div、span等非流媒体节点 Returns: Type Void setMixMediaConfig(options) 摄像图画面和屏幕共享画面混频；需要在建立会话之前设置 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description enableMixVideo Boolean 必须 是否启动混频功能 videoLayout Number 混频时摄像头的布局 videoCompressSize Number 混频时摄像头压缩的大小[旧功能，不推荐] videoMixRatio Number 混频时压缩的比例[新功能] videoSecWinType Number 混频时设置为小窗的流类型[新功能] Returns: Type Promise setRemoteRenderMode(options) 设置对端视频画面大小 Parameters: Name Type Description options Object 配置对象 Properties Name Type Description account String 账号，WebRTC适用 uid String 账号，NRTC适用 width Number 宽度 height Number 高度 cut Boolean 是否裁剪 Returns: Type Void setRemoteVideoRenderer(options) 设置远端视图。 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description account Number IM账号(NRTC不适用，WebRTC可以使用account/uid二选一) uid Number uid账号 view Element 本地画面待渲染的DOM节点，如div、span等非流媒体节点 Returns: Type Void setVideoProfile(options) 设置视频属性 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description quality String 视频质量 frameRate String 视频帧率 Returns: Type Void startAudioMixing(options) 云端音乐文件和本地麦克风声音混合；需要在启动麦克风之后使用 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description audioFilePath String 必须，云端音频文件路径 loopback String 可选，是否循环播放，缺省为false，表示播放一次就结束（这里如果是false，则cycle参数不生效） replace String 可选，是否替换麦克风采集的音频数据，缺省为false cycle Number 可选，循环的次数，需要loopback参数置为true（如果想无限循环，cycle设置为0，loopback设置为true），缺省为0，如果loopback为true，表示无限循环，如果loopback为false，该参数不生效 playStartTime Number 可选，设置音频文件开始播放的位置，单位为 s。缺省设为 0，即从头开始播放 auidoMixingEnd function 可选，伴音文件播放完成的通知反馈（正常停止伴音或关掉通话获取其他原因停止伴音不会触发） Returns: Type Promise startDevice(options) 开启设备 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type Number 设备类型 device Object &lt;optional&gt; 设备, 如果没有指定, 那么开启该类型的第一个设备 Properties Name Type Argument Description deviceId String &lt;optional&gt; 设备id enableEchoCancellation Boolean &lt;optional&gt; 是否使用回声消除来尝试去除通过麦克风回传到扬声器的音频 account String im账号，可选，不填为操作指定人 uid String uid，可选，不填为操作指定人 Returns: Type Promise startMediaRecording(param) 开启单人视频录制 Parameters: Name Type Description param Object 参数对象 Properties Name Type Description account String 目标账号(NRTC值为 UID) uid String 如果是远程流录制，account或uid二选一 type String 如果是自己流录制，'audio','video'或'screen' reset Boolean 如果之前的录制视频未下载，是否重置，默认false Returns: 包含recordId值，用于下载等操作 Type Promise startPreview(options) 开启预览本地画面(暂不开放) Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description videoDeviceId String &lt;optional&gt; 视频设备ID，不传则默认第一个 Returns: Type Promise startPreview() 停止预览本地画面(暂不开放) Returns: Type Promise startPreview() 关闭本地麦克风(暂不开放) Returns: Type Promise stopAudioMixing() 停止伴音 Returns: Type Promise stopDevice(options) 关闭设备 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description type Number 设备类型 Returns: Type Promise stopMediaRecording(options) 结束视频录制 Parameters: Name Type Description options Object 参数对象 Properties Name Type Description recordId String 录制id，可以通过listMediaRecording接口获取 Returns: Type Promise takeSnapshot(options) 截取指定用户的视频画面(文件保存在浏览器默认路径) Parameters: Name Type Description options Object 配置参数 Properties Name Type Description account String 指定用户的account uid Number 指定用户的uid Returns: Type Promise updateRtmpHost() 更换互动直播主画面 Parameters: Name Type Description param.uid String 主画面的uid Returns: Type Promise × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "},"WhiteBoard.html":{"id":"WhiteBoard.html","title":"Class: WhiteBoard","body":" Documentation Namespaces blobsupportutil Classes AudioChatroomChatroomInfoChatroomMemberChatroomMessageCollectCommentFileFriendGeoImageIMMessageLoginPortNetcallNetcallWeixinNIMNIMErrorNRTCRelationSessionSignalingSuperTeamSuperTeamMemberSystemMessageTeamTeamMemberUserVideoWebRTCWebRTC/NRTCWhiteBoard Events NRTC#event:addTrackNRTC#event:audioVolumeNRTC#event:auidoMixingEndNRTC#event:deviceAddNRTC#event:deviceRemoveNRTC#event:deviceStatusNRTC#event:errorNRTC#event:gatewayClosedNRTC#event:joinChannelNRTC#event:leaveChannelNRTC#event:recordStoppedNRTC#event:remoteTrackNRTC#event:removeTrackNRTC#event:streamEndedNRTC#event:userJoinedNRTC#event:userLeftNRTC#event:userStateUpdatedWebRTC#event:beCallingWebRTC#event:callAcceptedWebRTC#event:callerAckSyncWebRTC#event:callRejectedWebRTC#event:controlWebRTC#event:hangupWebRTC#event:sessionDuration Global changeRoleToAudiencechangeRoleToPlayercreateProgramfilterClientAntispamloadShaderobjRTC_EVENTS Class: WhiteBoard WhiteBoard new WhiteBoard() 请使用 WhiteBoard.getInstance 来初始化白板环境. Members &lt;static, readonly&gt; HANGUP_* 通话挂断对方的退出方式 WhiteBoard.HANGUP_TYPE_NORMAL 正常挂断 WhiteBoard.HANGUP_TYPE_TIMEOUT 超时挂断 &lt;static, readonly&gt; WB_CONTROL_COMMAND_* 控制指令 WhiteBoard.CONTROL_COMMAND_BUSY 占线 WhiteBoard.CONTROL_COMMAND_SELF_ON_BACKGROUND 自己处于后台 WhiteBoard.CONTROL_COMMAND_START_NOTIFY_RECEIVED 告诉发送方自己已经收到请求了（用于通知发送方开始播放提示音） &lt;static, readonly&gt; WB_TYPE_* 音视频通话类型 WhiteBoard.WB_TYPE_TCP TCP通道白板 WhiteBoard.WB_TYPE_UDP UDP通道白板 Methods &lt;static&gt; getInstance(options) Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Default Description nim NIM NIM 实例 isCustom Node &lt;optional&gt; true 是否走上层自己解析 container Node &lt;optional&gt; canvas容器 debug Boolean &lt;optional&gt; false 是否开启debug模式，默认不开启，debug模式下浏览器会打印log日志 call(options) 发起白板呼叫 Parameters: Name Type Description options Object 配置参数 Properties Name Type Argument Description type Number 白板类型 netcallType Boolean 音视频类型, 默认值：0 account String 对方账号 pushConfig Object &lt;optional&gt; 推送配置 Properties Name Type Argument Default Description enable Boolean &lt;optional&gt; true 是否需要推送, 默认 true needBadge Boolean &lt;optional&gt; true 是否需要角标计数, 默认 true needPushNick Boolean &lt;optional&gt; true 是否需要推送昵称, 默认 true pushContent String &lt;optional&gt; 推送内容 custom String &lt;optional&gt; 自定义通知数据 pushPayload String &lt;optional&gt; JSON格式的推送 payload sound String &lt;optional&gt; 推送声音 sessionConfig Object &lt;optional&gt; 会话配置 Properties Name Type Argument Default Description width Number &lt;optional&gt; 宽度 height Number &lt;optional&gt; 高度 record Boolean &lt;optional&gt; false 服务端白板录制开关，默认关闭 Returns: Type Void control(options) 发送音视频通话控制指令 Parameters: Name Type Default Description options Object {} 配置参数 Properties Name Type Argument Description channelId String &lt;optional&gt; 要发送指令的通话的 channelId, 如果不填那么默认为当前通话 command Number &lt;optional&gt; 可选控制指令请参考 WhiteBoard.NETCALL_CONTROL_COMMAND_* info String &lt;optional&gt; 命令信息 Returns: Type Void createChannel(options) 创建频道 Parameters: Name Type Description options Object 配置参数 Properties Name Type Description channelName Number 频道名称 custom String 扩展字端（用于上层放自定义数据，选填） Returns: Type Promise destroy() 销毁白板 Returns: Type Void getAccount() 获取当前登录的 IM 账号 Returns: Type String getStatus() 获取当前白板实例的状态信息 Returns: Type Object getUid() 获取当前登录的IM账号的 uid Returns: Type String hangup( [channelId]) 挂断白板通话 Parameters: Name Type Argument Description channelId String &lt;optional&gt; 要挂断的通话的 channelId, 如果不填那么挂断当前通话 Returns: Type Void isChannelConnected() 判断白板通道是否已连接，v5.6.0 新增接口 isCurrentChannelId() 是否是当前会话的 channelId Returns: Type Boolean isCurrentChannelId() 不是当前会话的 channelId Returns: Type Boolean joinChannel(options) 主动加入频道 Parameters: Name Type Argument Description options Object 白板相关配置参数 option.role num 用户角色, 默认互动者 options.channelName String 频道名称 option.sessionConfig Object 配置参数 options.sessionConfig.backgroundUrl String &lt;optional&gt; 默认背景图(切换PPT的时候展示) options.sessionConfig.color String &lt;optional&gt; 画笔颜色 options.sessionConfig.width Number &lt;optional&gt; 宽度 options.sessionConfig.height Number &lt;optional&gt; 高度 option.sessionConfig.record num &lt;optional&gt; 是否录制 Returns: Type Promise leaveChannel() 离开房间 Returns: Type Void response( [options]) 响应呼叫 Parameters: Name Type Argument Default Description options Object &lt;optional&gt; {} 配置参数 Properties Name Type Argument Default Description accepted Boolean &lt;optional&gt; true true 接听, false 拒绝 beCalledInfo Object 被呼叫的信息, 在 beCalling 事件里可以接收到的信息 sessionConfig Object &lt;optional&gt; 会话配置 Properties Name Type Argument Default Description width Number &lt;optional&gt; 宽度 height Number &lt;optional&gt; 高度 record Boolean &lt;optional&gt; false 服务端白板录制开关，默认关闭 Returns: Type Promise sendData(data, toAccount) 发送自定义数据 v5.0.2 新增接口 Parameters: Name Type Description data any 数据 toAccount optional 目标用户 startSession() 开启会话连接 Returns: Type Void stopSession() 结束会话连接 Returns: Type Void × Search results Close Documentation generated by JSDoc 3.5.5 on 2020-05-11T17:02:58+08:00 using the DocStrap template. "}}
    </script>

    <script type="text/javascript">
        $(document).ready(function() {
            Searcher.init();
        });

        $(window).on("message", function(msg) {
            var msgData = msg.originalEvent.data;

            if (msgData.msgid != "docstrap.quicksearch.start") {
                return;
            }

            var results = Searcher.search(msgData.searchTerms);

            window.parent.postMessage({"results": results, "msgid": "docstrap.quicksearch.done"}, "*");
        });
    </script>
</body>
</html>
